使用 Allure 在失败时捕获屏幕截图

Using Allure to capture a screenshot on fail

我一直在玩弄 Allure 框架,我认为如果有任何 error/failure 发生(基本上任何不是通过的事情)我想截屏。

我正在使用 Java/Junit/Maven。

我看到有多种使用@Rule 来执行此操作的方法,但不确定这是否会在报告中保存屏幕截图。

我原以为会有测试用例状态或一些我可以在拆卸过程中检查的东西,但找不到任何东西。

有人有什么想法吗?

JUnit 规定它是失败时保存屏幕截图的默认方式。一个例子:

@Rule
public TestWatcher screenshotOnFailure = new TestWatcher() {
    @Override
    protected void failed(Throwable e, Description description) {
        makeScreenshotOnFailure();
    }

    @Attachment("Screenshot on failure")
    public byte[] makeScreenshotOnFailure() {
        return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
    }
};