引诱。如何在testFailure事件上获取屏幕截图。使用Java + Junit4 + Maven

时间:2015-07-14 11:55:18

标签: screenshot junit4 allure

如果我想在测试失败时获取屏幕截图,那么最佳做法是什么?我试着这样做:

1)覆盖AllureRunListener:

$fruits = array_map(function($index,$value) {
        return ['index'=>$index,'value'=>$value];
    },array_keys($fruits),$fruits);

方法 makeScreenshot(“失败屏幕截图”)是Util类中的静态方法:

public class SimpleScreenshotTestListener extends AllureRunListener{

@Override
public void testFailure(Failure failure) {
    if (failure.getDescription().isTest()) {
        fireTestCaseFailure(failure.getException());
    } else {
        startFakeTestCase(failure.getDescription());
        fireTestCaseFailure(failure.getException());
        finishFakeTestCase();
    }
    makeScreenshot("Failure screenshot");
}   

}

3)在我的pom文件中,我使用了创建的监听器 的 SimpleScreenshotTestListener:

public final class Util {

 private Util() {}

 @Attachment(value = "{0}", type = "image/png")
 public static byte[] makeScreenshot(String name) {
        return ((TakesScreenshot) <Thread Local Driver>).getScreenshotAs(OutputType.BYTES);
 }
}

我的问题是:这种方式是最好的方法,还是我应该这样做。

0 个答案:

没有答案