不要让测试在失败时停止

时间:2015-06-09 10:11:32

标签: junit junit4

我正在寻找遵循(简化)方案的最佳做法:

@Test
public void someTest() {
  for(String someText : someTexts) {
    Assert.true(checkForValidity(someText));
  }
}

这个测试迭代了成千上万的文本,在这种情况下,我不希望每次失败都停止它。我希望缓冲错误,并在最后一个错误的情况下失败。 JUnit有没有为我的目标做些准备?

1 个答案:

答案 0 :(得分:8)

首先,实现这一点并不是正确的方法。 JUnit通过使用Parametrized测试运行器定义输入/输出集合来允许parametrizing测试。这样做可以确保每个测试用例成为一个独特的实例,使测试报告清楚地说明哪些样本通过,哪些样本失败。

如果你仍然坚持按照自己的方式去做,你应该看看AssertJ的Soft Assertions,它允许“吞咽”个别断言失败,积累它们并且只在测试结束后报告。链接的文档部分使用了一个很好的例子,绝对值得一读。