junit-jupiter-api和junit-jupiter-engine之间的区别


问题内容

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.4之前的JUnit

文档

junit-jupiter-api

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

junit-jupiter-engine

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

junit-vintage-engine

JUnit Vintage测试引擎实现,允许在新的JUnit Platform上运行Vintage JUnit测试,即以JUnit 3或JUnit
4样式编写的测试。

所以…

  • 您同时需要junit-jupiter-apijunit-jupiter-engine来编写和运行JUnit5测试
  • 仅在以下情况下才需要:junit-vintage-engine(a)与JUnit5一起运行, 以及 (b)测试用例使用JUnit4构造/注释/规则等

从5.4版开始的JUnit

在JUnit5.4中,这已简化,请参见下方答案以获取更多详细信息。