Joseph
Joseph

Reputation: 604

Using Allure to capture a screenshot on fail

I've been playing around with the Allure framework and I think that if any error/failure happened (basically anything that isn't a pass) I'd like to capture a screenshot.

I'm using Java/Junit/Maven.

I've seen there are various ways of using @Rule to do this, but wasn't sure if this would save the screenshot within the report.

I had thought there would be a testcase status or something I could check as part of the tear down but counldn't find anything.

Anyone have any ideas?

Upvotes: 3

Views: 7535

Answers (1)

Dmitry Baev
Dmitry Baev

Reputation: 2743

JUnit rules it is the default way to save screenshots on fail. An example:

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

Upvotes: 3

Related Questions