2017-07-13 51 views
1

我试图用黄瓜-html记者生成报告。在它的GitHub页面上,我看到了一个奇特的引导程序报告,其中截图附加到失败的步骤本身。 https://www.npmjs.com/package/cucumber-html-reporter黄瓜附加屏幕截图到stepresult

我正在使用cucumber-js 2.3.1,无法在StepResult上附加屏幕截图。

我可以只在世界可用的After钩子附加截图。

After(function (scenario) { 

    if (scenario.isFailed()) { 

     const world = this; 
     return browser.takeScreenshot().then(function (screenShot) { 
      world.attach(screenShot, 'image/png'); 
     }); 
    } 
}); 

这工作正常,但不幸的是截图附加到“后”步骤,而不是失败的一个。因为之前“StepResult”钩子被调用执行黄瓜json_formatter.handleStepResult

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' 
      }); 
     }); 
    } 
}); 

它的工作原理,将附件添加,而不是渲染到报告:

我已经试过这一点。

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

谢谢!

回答

0

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

在Github页面中显示的示例中,它将屏幕截图附加到Step,并将其显示到“then”步骤。请参阅here了解更多信息。