JUnit - 指定测试对其他测试的依赖性(不跳过任何一个)?

新手上路,请多包涵

我们的工具包有超过 15000 个 JUnit 测试,如果其他测试失败,许多测试就会失败。例如,如果方法 X.foo() 使用 Y.bar() 中的功能并且 YTest.testBar() 失败,那么 XTest.testFoo() 也会失败。显然,XTest.testFoo() 也可能因为 X.foo() 特有的问题而失败。

虽然这很好并且我仍然希望这两个测试都运行,但如果可以使用指向 YTest.testBar() 的 XTest.testFoo() 来注释测试依赖性,那就太好了。这样,人们可以立即看到 X.foo() 使用的哪些功能也失败了,哪些没有。

JUnit 或其他地方是否有这样的注释?就像是:

 public XTest {

  @Test
  @DependsOn(method=org.example.tests.YTest#testBar)
  public void testFoo() {
     // Assert.something();
  }

}

原文由 Egon Willighagen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 725
2 个回答

JUnit 还不能(在撰写本文时,2022 年)。

但是 JExampleTestNG 都有类似的东西。

  • 所述库提供它们自己的测试运行器,支持它们的依赖机制。
  • 两者都可以与 JUnit 一起使用(无需重写现有类)。
  • 但 TestNG 似乎更有前途。

我不知道它有多大用处,但是如果您尝试了,请回来告诉我们它是否有用。

原文由 Esko Luontola 发布,翻译遵循 CC BY-SA 4.0 许可协议

对 JUnit 的贡献解决了这个问题: https ://github.com/junit-team/junit.contrib/tree/master/assumes

2022 年更新; 假设现在已经出来了,但这只会跳过测试,这不是 OP 要求的。

原文由 Jose Muanis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题