我正在使用 Junit,我想在测试失败时记录测试方法名称和一些堆栈跟踪,有没有办法做到这一点?
我的示例代码如下:
public class TestGoogleHomePage extends Browser {
@Test
public void testLoadGoogle() {
...............
//assume this case will fail
}
@Test
public void testSearchGoogle() {
.......
}
@Rule
public TestWatcher watchman = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
System.out.println("test fail");
System.out.println(Thread.currentThread().getStackTrace()[1]
.getMethodName());
}
@Override
protected void succeeded(Description description) {
......
}
};
}
语句System.out.println(Thread.currentThread().getStackTrace()[1] .getMethodName()); 将打印方法失败,而不是 testLoadGoogle。有没有办法可以捕获失败方法的名称?
我也可以打印堆栈跟踪吗?
此外,如果我可以避免为此目的在实际测试中添加额外的代码,那就太好了。因为我不想为我的每个测试用例重复这些代码。
提前感谢您的帮助。