我希望在测试失败时,能够使用UiAutomator截图。目前我已经按照以下方式进行设置:
@Override
protected void setUp() throws Exception {
System.out.println("Beginning setup...");
testFailed = true;
}
@Override
protected void tearDown() throws Exception {
if(testFailed)
getUiDevice().takeScreenshot("/sdcard/Pictures/Screenshots/failure.jpg");
}
那么单独的测试就是这样进行的
public void testExample(){
/* do stuff */
testFailed = false;
}
这个想法是,如果抛出异常,则testFailed永远不会被设置为false,并且tearDown在测试后调用时会进行截屏。
我真的希望能够将testListener或未捕获的异常处理程序添加到我的代码中,以解决这个问题。然而,UiAutomator有自己的未捕获异常处理程序,它会覆盖我尝试实现的处理程序。我可以添加我的未捕获异常处理程序,但它只会被忽略。
有没有办法可以添加一个未捕获的异常处理程序,它可以拦截抛出的异常和UiAutomator的未捕获异常处理程序之间的异常,然后将它们传递给UiAutomator?
还有其他方法可以监听测试失败/抛出异常,而不必在每个测试的结尾具体添加那个布尔值吗?