Java junit jupiter api和junit jupiter引擎之间的差异
maven模块与junit jupiter api和junit jupiter引擎之间的区别是什么?是否需要在Java junit jupiter api和junit jupiter引擎之间的差异,java,junit,junit5,Java,Junit,Junit5,maven模块与junit jupiter api和junit jupiter引擎之间的区别是什么?是否需要在build.gradle中同时包含这两个依赖项 我是否需要同时提供这两个依赖项 testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}") testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}"
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.4版之前的junit
发件人:
junit jupiter api
JUnitJupiter API,用于编写测试和扩展
junit jupiter引擎
JUnit Jupiter测试引擎实现,仅在运行时需要
junit vintage引擎
JUnit Vintage测试引擎实现,允许在新的JUnit平台上运行Vintage JUnit测试,即以JUnit 3或JUnit 4风格编写的测试
所以
- 编写和运行JUnit5测试需要
和junit jupiter api
junit jupiter引擎
- 如果(a)您使用的是JUnit5和(b)您的测试用例使用JUnit4构造/注释/规则等,那么您只需要
junit vintage engine
在JUnit 5.4中,这是简化的,请参阅以获取更多详细信息。只需注意,
JUnit jupiter api
作为子依赖项包含在JUnit jupiter engine
Maven存储库中。因此,您只需添加junitjupiter引擎
,即可同时获得这两个引擎。我相信格雷德尔也一样。
您的问题的最准确答案在存储库中。看看格雷德尔和马文 正如您在这两个示例中所看到的,唯一需要的依赖项是
junitjupiter
junitjupiter
工件
如果您的目的是编写JUnit5测试,那么Maven配置就简单多了。只需指定名为的聚合工件
org.junit.jupiter
(编译依赖项)
(编译依赖项)
(运行时依赖项)
在您的项目中,您还将得到:
- junit-platform-commons-1.4.0.jar
- junit-platform-engine-1.4.0.jar
上面是基于新的Jupiter范例编写和运行JUnit 5测试所需的内容
遗留测试
如果您的项目具有要继续运行的JUnit 3或4测试,请为JUnit Vintage引擎添加另一个依赖项。看
org.junit.vintage
朱尼特老式发动机
5.4.2
测试
小改进:JUnit团队的建议是对这两个引擎都使用testRuntime
。您不需要同时添加这两个引擎,因为jupiter api
是jupiter engine
的一个可传递依赖项。在5.5.1版本中,我只能使用“JUnit jupiter api”编写和运行JUnit测试。@gaurav,是的,这在我的回答说明的这一部分中有介绍:在JUnit 5.4中,这是简化的,请参阅以了解更多详细信息。现在在JUnit 5.4中简化了,后来简化为JUnit jupiter
。在我看来,这是最好的答案。