Cucumber 将屏幕截图附加到stepresult

Cucumber 将屏幕截图附加到stepresult,cucumber,report,screenshot,Cucumber,Report,Screenshot,我正在尝试使用html reporter生成报告。在它的GitHub页面上,我看到了一个奇特的引导报告,其中一个屏幕截图附加到失败的步骤本身。 我正在使用cucumber js 2.3.1,无法将屏幕截图附加到StepResult 我只能在后钩子中附加一个屏幕截图,在那里世界是可用的 After(function (scenario) { if (scenario.isFailed()) { const world = this; return br

我正在尝试使用html reporter生成报告。在它的GitHub页面上,我看到了一个奇特的引导报告,其中一个屏幕截图附加到失败的步骤本身。

我正在使用cucumber js 2.3.1,无法将屏幕截图附加到StepResult

我只能在后钩子中附加一个屏幕截图,在那里世界是可用的

After(function (scenario) {

    if (scenario.isFailed()) {

        const world = this;
        return browser.takeScreenshot().then(function (screenShot) {
            world.attach(screenShot, 'image/png');
        });
    }
});
这很好,但不幸的是,屏幕截图附加到了“之后”步骤,而不是失败的步骤

我试过这个:

    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'
            });
        });
    }
});
它可以工作,添加了附件,但没有呈现到报告中,因为在调用“StepResult”钩子之前执行了cumber json_formatter.handleSetResult

有人能给我一个解决办法吗


谢谢

如果您在步骤本身中捕获屏幕截图,则报告者将在失败的步骤中显示屏幕截图链接。如果在后钩子处捕获,它将显示在钩子中

在Github页面中显示的示例中,它将屏幕截图附加到步骤,并显示“then”步骤。有关更多信息,请查看