我试图在失败时在Testcafe+gherkin中制作一个屏幕截图,但没有成功。我设置了一个配置文件:
{
"browsers": "firefox",
"screenshots": {
"path": "reports/screenshots/",
"takeScreenshotsOnFails": true,
"pathPattern": "${TIME}.png"
},
"reporter": [
{
"name": "spec"
},
{
"name": "cucumber-json",
"output": "reports/generatedReports/newReport.json"
}
],
"pageLoadTimeout": 1000
}
但屏幕截图并没有出现。其他线路像浏览器等一样工作。
我应该使用:
await t.takeScreenshot("reports/SCREENSHOT.png");
但是如何只在失败时才这样做呢?
takeScreenshotsOnFails
在较新版本中已被takeOnFails
取代。
您的配置文件可能如下所示:
{
"browsers": "firefox",
"screenshots": {
"path": "reports/screenshots/",
"{
"browsers": "firefox",
"screenshots": {
"path": "reports/screenshots/",
"takeOnFails": true,
"pathPattern": "${TIME}.png"
},
"reporter": [
{
"name": "spec"
},
{
"name": "cucumber-json",
"output": "reports/generatedReports/newReport.json"
}
],
"pageLoadTimeout": 1000
}
我不太确定这是否适用于带有小黄瓜的testcafe。您可以在脚本下将此代码添加到您的包.json 中
"test:chrome": "testcafe chrome ./tests -s takeOnFails=true",
并使用命令npm run test:chrome
运行
创建一个不同的文件或附加到.testcaferc.json的现有文件中
代码是
{"screenshotPath": "./screennshots",
"screenshotPathPatterns": "${DATE}_${TIME}/${FISTURE}.png"}
在package.json文件中更新以下代码
"test:chrome": "testcafe chrome ./tests -s takeOnFails = true",
您可以遵循官方文档:
测试失败时进行屏幕截图
您可以将TestCafe配置为每当测试失败。使用以下任一项:
-s
(--screenshots
(命令行标志中的takeOnFails
参数,
testcafe chrome tests/sample-fixture.js -s takeOnFails=true
runner.screenshots
API方法的takeOnFails
参数,
runner.screenshots({
takeOnFails: true
});
screenshots.takeOnfails
配置文件属性
{
"screenshots": {
"takeOnFails": true
}
}