我试图用cucumber-html-reporter生成报告。在它的GitHub页面上,我看到了一个奇特的引导程序报告,其中屏幕截图附加到失败的步骤本身。 https://www.npmjs.com/package/cucumber-html-reporter
我正在使用cucumber-js 2.3.1并且无法将屏幕截图附加到StepResult。
我只能在After hook中附加截图,其中World可用。
After(function (scenario) {
if (scenario.isFailed()) {
const world = this;
return browser.takeScreenshot().then(function (screenShot) {
world.attach(screenShot, 'image/png');
});
}
});
这很好用,但不幸的是截图附在" After"一步,而不是失败者。
我试过这个:
registerHandler('StepResult', function (StepResult) {
if (StepResult.isFailed()) {
return browser.takeScreenshot().then(function (screenShot) {
var decodedImage = new Buffer(screenShot, 'base64');
StepResult.attachments.push({
data: decodedImage.toString('base64'),
mimeType: 'image/png'
});
});
}
});
它有效,附件被添加,但没有呈现到报告中,因为黄瓜json_formatter.handleStepResult是在' StepResult'之前执行的。调用了钩子。
有人能告诉我一个解决方案吗?
谢谢!
答案 0 :(得分:0)
如果您在STEP中捕获屏幕截图,记者将在失败的STEP中显示屏幕截图链接。如果您在AFTER挂钩处捕捉,它将显示在钩子中。
在Github页面中显示的示例中,它将屏幕截图附加到Step,因此它显示为“then”步骤。有关详细信息,请查看here。