【问题标题】:Are test suites considered deprecated in JUnit5?测试套件在 JUnit5 中是否被认为已弃用?
【发布时间】:2018-11-07 00:13:20
【问题描述】:

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

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

这就是它在 JUnit 4 中的做法:

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

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

【问题讨论】:

  • 据我所知,您应该使用@SelectClasses@SelectPackages
  • @Nebula,我的answer能回答你的问题吗?
  • @SamBrannen 是的,谢谢你的详细解释
  • 认为@Tags 是套件的替代品?

标签: java junit junit5 test-suite


【解决方案1】:

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

组曲答案:

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

详细回答:

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

运行器的问题是它不能直接在 JUnit 平台上执行。它只能使用 JUnit 4 自行执行。这意味着您将失去 JUnit 平台的全部报告功能,因为从 JUnit 平台到 JUnit 4 的转换过程中会丢失信息。

总而言之,从技术上讲,您可以使用 JUnitPlatform 运行程序使用 JUnit 5 执行套件,并且测试将执行,但 IDE 中的报告和显示将不是最佳的。

从好的方面来说,JUnit 团队计划为 JUnit 5 中的套件提供内置支持,这些套件不会受到 JUnit 4 的 JUnitPlatform 运行器的缺点的影响。有关详细信息,请参阅分配给 @ 的所有问题987654321@.

此外,已经有一个feature branch,您可以查看它可以是consumed in a Maven or Gradle build via JitPack

问候,

Sam(JUnit 5 核心提交者)

【讨论】:

    【解决方案2】:

    现在可以使用 JUnit 5 套件引擎(来自版本 5.8.0)运行测试套件。

    // Aggregator dependency for junit-platform-suite-api and junit-platform-suite-engine
    implementation("org.junit.platform:junit-platform-suite:1.8.1")
    

    Kotlin(在 Java 中将 ::class 替换为 .class):

    import org.junit.platform.suite.api.*
    
    @Suite
    @SelectClasses(MyTestClass1::class, MyTestClass2::class)
    @SelectPackages("...")
    @SelectDirectories("...")
    class MyTestSuite
    

    The deprecation of JUnitPlatform runner:

    junit-platform-suite-engine 模块提供的@Suite 支持的引入使得JUnitPlatform runner 过时了。有关详细信息,请参阅 JUnit 平台套件引擎。

    【讨论】:

      猜你喜欢
      • 2012-06-27
      • 1970-01-01
      • 2015-04-12
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多