maven模块junit-jupiter-api
和junit-jupiter-engine
之间有什么区别?是否有必要在build.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
上添加依赖项?
5条答案
按热度按时间lsmd5eda1#
junit-jupiter
聚合器工件如果您打算编写JUnit 5测试,JUnit 5.4 provides会使Maven配置更加简单。只需指定名为
junit-jupiter
的聚合工件即可。作为一个聚合,为了方便起见,此工件依次自动拉取以下三个工件:
junit-jupiter-api
(编译相依性)junit-jupiter-params
(编译相依性)junit-jupiter-engine
(执行阶段相依性)在您的项目中,您还将得到:
以上是基于新的Jupiter范例编写和运行JUnit 5测试所需的内容。
遗留测试
如果您的项目中有要继续运行的JUnit 3或4测试,请为 JUnit Vintage Engine 添加另一个依赖项
junit-vintage-engine
。请参见tutorial by IBM。cgh8pdjw2#
JUnit 5.4版之前的版本
来自文档:
一月一日
用于编写测试和扩展的JUnit Jupiter API。
一个月一个月
JUnit Jupiter测试引擎实现,仅在运行时需要。
junit-vintage-engine
JUnit Vintage测试引擎实现,允许在新的JUnit平台上运行Vintage JUnit测试,即以JUnit 3或JUnit 4样式编写的测试。
所以...
junit-jupiter-api
和junit-jupiter-engine
junit-vintage-engine
:(a)您正在运行JUnit 5并且(B)您的测试用例使用JUnit 4结构/注解/规则等JUnit 5.4及更高版本
在JUnit 5.4中,这是简化的,有关更多详细信息,请参见this answer。
monwx1rj3#
需要注意的是,
junit-jupiter-api
作为子依赖项包含在junit-jupiter-engine
Maven资源库中。因此,您只需要添加junit-jupiter-engine
即可获得这两个依赖项。我相信gradle也是一样的。https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine/5.1.1vdzxcuhz4#
您的问题的最准确答案在junit-team/junit5-samples存储库中。只需查看适用于Gradle的junit5-jupiter-starter-gradle和适用于maven的junit5-jupiter-starter-maven。
正如您在两个示例中看到的,唯一需要的依赖项是
junit-jupiter
。cidc1ykv5#
如果您想使用Junit 5运行测试,您将只需要
junit-jupiter-api
。如果您将junit-jupiter-engine
与沿着使用,您的测试将中断,无法运行。我不知道为什么它被放置,但是,前面的答案告诉你,你将需要使用这两个是不正确的。