在JUnit5中,测试套件是否被视为已弃用?

时间:2018-05-28 11:48:35

标签: java junit junit5 test-suite

我正在尝试使用JUnit5创建测试套件。经过一些研究后,我无法断定它是否是受支持的功能。

official user guide仅提及套件与JUnit 4的向后兼容性。

这是在JUnit 4中完成的:

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
}

这是否意味着,测试套件现在被视为已弃用,或者是否仍以其他名称提供相同的概念?

1 个答案:

答案 0 :(得分:8)

  

这是否意味着,测试套件现在被视为已弃用,或者是否仍以其他名称提供相同的概念?

苦涩套件答案:

事实上,在JUnit 5中支持测试套件,但它几乎肯定不是你想要的。但是,JUnit团队正在开发一些可能适合您需求的工作。

详细答案:

从JUnit 5.2开始,对 suites 的唯一内置支持是通过JUnitPlatform Runner (通过@RunWith(JUnitPlatform.class)注册)。该运行器实际上启动了JUnit平台(a.k.a.,JUnit 5基础结构),并允许您针对各种编程模型(如JUnit 4和JUnit Jupiter)执行测试。它还允许您选择各种内容(例如,类,包等)并配置包含和排除过滤器(例如,用于标签或测试引擎)。

跑步者的问题是它可以直接在JUnit平台上执行。它只能 使用JUnit 4自行执行。这意味着您失去了JUnit平台的完整报告功能,因为从JUnit平台到JUnit 4的转换中丢失了信息。

总之,您可以在技术上使用JUnitPlatform运行器来使用JUnit 5执行套件,并且测试将执行,但IDE中的报告和显示将不是最理想的。

从好的方面来说,JUnit团队计划为JUnit 5中的套件提供内置支持,它不会遇到JUnit 4的JUnitPlatform运行器的缺点。有关详细信息,请参阅分配给的所有问题"suites" label on GitHub

此外,您还可以查看feature branch consumed in a Maven or Gradle build via JitPack

此致

Sam(JUnit 5核心提交者)