我想在场景中添加一个标签@skiponchrome,这应该会在使用Chrome浏览器运行Selenium测试时跳过这个场景.这样做的原因是因为某些场景在某些环境中工作而在其他环境中不起作用,这甚至可能不是特定于浏览器测试的,并且可以应用于其他情况,例如OS平台.
示例钩子:
@Before("@skiponchrome") // this works
public void beforeScenario() {
if(currentBrowser == 'chrome') { // this works
// Skip scenario code here
}
}
Run Code Online (Sandbox Code Playgroud)
我知道可以在黄瓜标签中定义〜@ skiponchrome来跳过标签,但我想在运行时跳过标签.这样,当我在特定环境中开始测试运行时,我不必考虑提前跳过哪些步骤.
我想创建一个钩子来捕获标记并跳过场景而不报告失败/错误.这可能吗?
当我的一个Jest测试失败时,我想存储一个屏幕截图,但仅当它失败时。
这里以我的测试代码为例,!passedafterEach中的部分不起作用。
describe('Page', () => {
it('should contain Text in the header', async () => {
// Arrange
const page = new Page(driver);
// Act
await page.open();
// Assert
expect(await page.getHeaderText()).toBe('Something');
});
afterEach(async () => {
if (!passed) takeScreenshot();
await driver.quit();
});
});
Run Code Online (Sandbox Code Playgroud)
使用茉莉花,我会做类似的事情:
var passed = jasmine.getEnv().currentSpec.results().passed();
Run Code Online (Sandbox Code Playgroud)
但是我找不到Jest的类似东西。也许还有另一种解决方案,例如对每个失败的期望进行截图?我尝试了一下try / catch,但是测试总是通过...
如果在afterEach中测试失败,如何与Jest核对?