是否有用于运行测试组的 JUnit TestRunner?

2022-09-04 01:55:06

我目前正在使用JUnit 4,并且需要将我的测试划分为可以以任何组合有选择地运行的组。我知道TestNG有一个功能来注释测试以将它们分配给组,但我现在无法迁移到TestNG。这似乎可以在JUnit中通过一些自定义注释和自定义JUnit TestRunner轻松完成。我已经检查了两个JUnit文档并搜索了网络,但找不到这样的东西。有谁知道这样的测试跑者吗?

更新:感谢您对测试套件的回复。我应该在我最初的问题中解决这些问题。现在我们开始:我不想使用测试套件,因为它们需要我手动创建和管理它们,这意味着触摸我所有的测试并手动将它们安排到套件中(太多的工作和维护噩梦)。我需要做的就是运行所有单元测试,除了一些真正的集成测试。因此,我想对这些内容进行注释,并运行所有其他内容。在其他时候,我只想运行集成测试。我还需要将单元测试放入多个组中,这在套件中是不可能的。希望这有助于解决问题。

更新2:如果JUnit没有这个OOB,我正在寻找一个开源库,将它添加到JUnit(注释+自定义JUnit测试运行程序)。


答案 1

JUnit目前没有这样的跑步者。解决根本问题,即需要在有限的时间内从测试套件获得合理的保证,这是我们下一个版本的最高开发优先级。与此同时,实现一个通过注释工作的过滤器似乎不是一个大项目,尽管我有偏见。


答案 2

看看Spring的SpringJUnit4ClassRunner。我已使用它来选择性地运行基于 System 属性的测试,使用 IfProfileValue 注释。

这:

@IfProfileValue(name="test-groups", values={"unit-tests", "integration-tests"})
  public void testWhichRunsForUnitOrIntegrationTestGroups() {
      // ...
 }

如果系统属性“测试组”设置为“单元测试”或“集成测试”,则将运行。

更新:JUnitExt有注释,看起来它应该做你需要的事情。但是,我自己从未使用过它,所以我不能保证它。@Category@Prerequisite


推荐