代码之家  ›  专栏  ›  技术社区  ›  Nebula

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

  •  10
  • Nebula  · 技术社区  · 6 年前

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

    这个 official user guide 只提到与JUnit4向后兼容的套件。

    这就是6月4日的做法:

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

    这是否意味着现在测试套件被视为不推荐使用,或者相同的概念在另一个名称下仍然可用?

    1 回复  |  直到 6 年前
        1
  •  11
  •   Sam Brannen    6 年前

    这是否意味着现在测试套件被视为不推荐使用,或者相同的概念在另一个名称下仍然可用?

    苦的 一套 回答:

    实际上,JUnit5中支持测试套件,但这几乎肯定不是您要找的。然而,JUnit团队正在研究一些可能适合您需要的东西。

    详细答案:

    从Junit 5.2开始,唯一的内置支持 套房 是通过 JUnitPlatform 转轮 (通过注册) @RunWith(JUnitPlatform.class) )该运行程序实际上启动了JUnit平台(即JUnit 5基础设施),并允许您针对各种编程模型(如JUnit 4和JUnit Jupiter)执行测试。它还允许您选择各种东西(例如类、包等),并配置包含和排除过滤器(例如,用于标记或测试引擎)。

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

    总之,您可以在技术上使用 军台 运行程序使用JUnit5执行一个套件,测试将执行,但在IDE中的报告和显示将是次优的。

    有利的一面是,JUnit团队计划为JUnit 5中的套房提供内置支持,这些套房不受 军台 6月4日的跑步者。有关详细信息,请参阅分配给 "suites" label on GitHub .

    此外,已经有一个 feature branch 你可以去看看 consumed in a Maven or Gradle build via JitPack .

    当做,

    Sam(Junit 5核心专员)