CucumberJS 中是否有配置可以在错误时截取屏幕截图?

dak*_*afa 1 javascript protractor cucumberjs

使用 CucumberJS 是否有选项或配置可以在执行测试后捕获错误屏幕截图?

yon*_*ong 5

您可以通过cucumber hook进行截图,After如下:

// supports/take-screenshot.js

var { After, Status } = require("cucumber");

After(function(testCase) {
    var me = this;

    if (testCase.result.status === Status.FAILED) {
        return browser.takeScreenshot().then(function(screenshot) {
            return me.attach(screenshot, "image/png");
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

然后将上面的钩子文件包含到cucumberOpts.requires量角器conf.js中,如下所示:

// cucumberOpts in protractor conf.js
cucumberOpts: {

    require: [
       "supports/cucumber-screenshot.js", 
       "steps/**/*step.js"
    ]
 }
Run Code Online (Sandbox Code Playgroud)