是否可以使用junit运行侦听器添加测试失败?

时间:2014-09-09 04:05:23

标签: unit-testing maven junit

我有一个简单的JUnit RunListener,用于检查测试用例是否修改了某些共享状态(否则下一个测试用例可能无法启动预期状态)。

public class SharedStateVerifier extends RunListener {
  @Override
  protected void testFinished(Description description) throws Exception {
    if (sharedStateHasBeenModified()) {
      throw new RuntimeException("The test case " + description.getDisplayName()
                                 + " has modified the shared state");
    }
  }
} 

我已将此监听器添加到maven surefire插件中,并按预期在每个单元测试中针对每个junit测试用例运行。

但是我想知道我是否正确实现了这一点。它似乎会报告第一次失败的测试,但是如果有更多则不会验证这样的测试,这会增加运行测试和修复失败的时间。此外,在测试摘要之后会打印出一个丑陋的堆栈跟踪(我猜想,因为听众是"失败"就maven surefire插件而言。

我可以缓存每个失败并抛出一个错误,在调用testRunFinished方法时报告所有这些失败。但我真正想要的是向测试运行器本身添加一个错误。

这可能吗?

0 个答案:

没有答案