黄瓜将截图添加到stepresult

时间:2017-07-13 12:19:02

标签: cucumber report screenshot

我试图用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'之前执行的。调用了钩子。

有人能告诉我一个解决方案吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您在STEP中捕获屏幕截图,记者将在失败的STEP中显示屏幕截图链接。如果您在AFTER挂钩处捕捉,它将显示在钩子中。

在Github页面中显示的示例中,它将屏幕截图附加到Step,因此它显示为“then”步骤。有关详细信息,请查看here