我正在使用JS+Playwright+Mocha和Chai构建一个测试自动化框架。我遇到了一个问题,配置文件的一些值被忽略了。例如,屏幕截图被定义为只在测试失败后进行,但它在每次测试后都会进行屏幕截图。我使用摩卡来运行测试,如下命令所示:
"scripts":{
"test":"mocha --recursive --timeout 100000 src/tests/*spec.js --reporter mocha-multi-reporters --reporter-options configFile=reporter.json"
}
现在,看看playwright.config.js
:中定义的屏幕截图功能
use: {
screenshot: 'only-on-failure',
},
理论上一切似乎都很好。
然而,现在使用以下代码运行测试:
afterEach(async function() {
await page.screenshot({path: `screenshots/${new Date().toJSON().slice(0,10)}/${this.currentTest.title.replace(/s+/g, '_')}.png`})
})
屏幕截图是在每次测试后拍摄的。它应该只在失败后进行屏幕截图。
有人经历过这种情况吗?
感谢
通过从Mocha迁移到新的Playwright Test Runner,问题得到了解决。
然后以下代码工作:
use: {
screenshot: 'only-on-failure',
},
这使我可以避免在afterEach钩子中运行屏幕截图功能。并生成测试结果文件夹的屏幕截图。