Java 是否可以从RunListener.testFinished获取JUnit中的测试状态?
我需要在JUnit中以不同的方式处理失败和通过的测试。但是JUnitJava 是否可以从RunListener.testFinished获取JUnit中的测试状态?,java,junit,Java,Junit,我需要在JUnit中以不同的方式处理失败和通过的测试。但是JUnitRunListener只有testFinished()在测试失败与否时调用,只有testFailed()在测试失败时调用 有没有办法从RunListener.testFinished()中找到测试结果(失败\通过) 另外,我正在研究另一个JUnit类--TestWatcher。它有successed()方法。但是我不想使用它,因为我还需要在所有测试完成后执行一些操作(RunListener中的testRunFinished())
RunListener
只有testFinished()
在测试失败与否时调用,只有testFailed()
在测试失败时调用
有没有办法从RunListener.testFinished()
中找到测试结果(失败\通过)
另外,我正在研究另一个JUnit类--
TestWatcher
。它有successed()
方法。但是我不想使用它,因为我还需要在所有测试完成后执行一些操作(RunListener
中的testRunFinished()
)使用RunListener类执行此操作的方法是在testFailure()方法中使用子描述标记失败的测试,然后在testFinished()中检查该子描述方法:
class MyRunListener extends RunListener {
private static final Description FAILED = Description.createTestDescription('failed', 'failed')
@Override
void testFailure(Failure failure) throws Exception {
failure.description.addChild(FAILED)
}
@Override
void testFinished(Description description) throws Exception {
if (description.children.contains(FAILED))
// Process failed tests here...
else
// Process passed tests here...
}
}