朱尼特-木星-api 和朱尼特-朱庇特-引擎之间的区别 junit-jupiter聚合器工件旧版测试

2022-08-31 16:21:57

maven 模块 和 ?是否有必要在 中同时包含这两个依赖项?junit-jupiter-apijunit-jupiter-enginebuild.gradle

我是否需要同时提供这两个依赖项?

testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}")

或者只有一个依赖关系就足够了?

testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")

我需要添加依赖关系吗?junit-vintage-engine


答案 1

junit-jupiter聚合器工件

JUnit 5.4 提供了更简单的 Maven 配置,如果你打算编写 JUnit 5 测试。只需指定名为 junit-jupiter 的聚合工件即可。

<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.8.2</version>
    <scope>test</scope>
</dependency>

作为聚合,为了您的方便,此项目依次自动拉取以下三个项目:

在您的项目中,您还将获得:

  • junit-platform-commons-1.4.0.jar
  • junit-platform-engine-1.4.0.jar

以上是基于新的Jupiter范式编写和运行JUnit 5测试所需要的。

旧版测试

如果您的项目具有要继续运行的 JUnit 3 或 4 测试,请为 JUnit Vintage Engine 添加另一个依赖项 junit-vintage-engine。请参阅 IBM 的教程

<!-- https://mvnrepository.com/artifact/org.junit.vintage/junit-vintage-engine -->
<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <version>5.8.2</version>
    <scope>test</scope>
</dependency>

答案 2

版本 5.4 之前的 JUnit

文档中

junit-jupiter-api

JUnit Jupiter API,用于编写测试和扩展。

junit-jupiter-engine

JUnit Jupiter 测试引擎实现,仅在运行时需要。

junit-vintage-engine

JUnit Vintage测试引擎实现,允许在新的JUnit平台上运行老式JUnit测试,即以JUnit 3或JUnit 4风格编写的测试。

所以。。。

  • 您需要两者来编写和运行 JUnit5 测试junit-jupiter-apijunit-jupiter-engine
  • 只有在以下情况下,您才需要 (a) 您使用 JUnit5 (b) 您的测试用例使用 JUnit4 构造/注释/规则等junit-vintage-engine

JUnit 从 5.4 版开始

在 JUnit 5.4 中,这得到了简化,有关更多详细信息,请参阅此答案


推荐