Junit5 是最近众所周知的Junit 测试框架。Junit5是模块化的,并且由不同的模块组成。
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
- JUnit Platform是在JVM上启动测试框架的基础。
- JUnit Jupiter是新编程模型和扩展模型的组合,用于在JUnit 5中编写测试和扩展。
- JUnit Vintage提供了一个TestEngine,用于在平台上运行基于JUnit 3和JUnit 4的测试。
在build.gradle中写下如下代码来支持运行 Junit Platform
test {
useJUnitPlatform()
}
可以在 useJUnitPlatform 中查看更多细节。
Compiling and executing JUnit Jupiter tests
为了支持Junit Jupiter ,可以添加如下依赖
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:5.1.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.1.0")
}
然后就可以写代码,并且运行 gradle test 来执行。
Executing legacy tests with JUnit Vintage
就如前面所写,如果你想运行 Junit3/4,或者是同 Jupiter tests混合运行,那么需要引入 JUnit Vintage Engine 依赖。
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter-api:5.1.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.1.0")
testCompileOnly("junit:junit:4.12")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.1.0")
}
Junit Platform 允许使用不同的测试引擎, Junit 当前提供了两种开箱即用的 TestEngine,junit-jupiter-engine and junit-vintage-engine.。当然也可以自自定义自己的实现的详细说明可以点击链接.
默认情况下,所有的测试引擎都会在测试运行期间使用,但如果想显示的实现具体的测试引擎,可以添加如下的配置来实现Filter specific engines。
tasks.test {
useJUnitPlatform {
includeEngines("junit-vintage")
// excludeEngines("junit-jupiter")
}
}
A test engine filtering sample can be found at samples/testing/junitplatform/engine in the ‘-all’ distribution of Gradle.
参考文档