如何将 TestEngine ID 更改为 运行 JUnit 5?
How can I change the TestEngine ID to run JUnit 5?
我的 Kotlin Android 项目有以下依赖项 {
dependencies {
...
testImplementation "org.junit.platform:junit-platform-engine:1.0.2"
testImplementation "org.junit.platform:junit-platform-gradle-plugin:1.0.2"
testImplementation "org.junit.platform:junit-platform-launcher:1.0.2"
testImplementation "org.junit.platform:junit-platform-suite-api:1.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-engine:5.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.0.2"
}
我在 运行 测试时得到的错误是:
org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
...
Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute(Lorg/junit/platform/launcher/LauncherDiscoveryRequest;
如果我的测试引擎 ID 是 junit-vintage
,那么是否可以更改它?它似乎仍在使用 junit 4 引擎。我怎样才能改变它以便它使用 junit-jupiter?我从依赖项中删除了 junit-4.12,所以我想知道为什么它使用 junit-vintage 引擎而不是 junit-jupiter。
目前正在使用:
Android Studio 3.0
Build #AI-171.4408382, built on October 20, 2017
JRE: 1.8.0_152-release-915-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
如果我必须包含 junit-vintage-engine,如果我的所有测试都是用 JUnit5 风格编写的,为什么还需要包含?
如果您将 Android 与 JUnit Jupiter (JUnit 5) 一起使用,您可能会发现使用 android-junit5 插件配置 Gradle 构建更容易。
我的 Kotlin Android 项目有以下依赖项 {
dependencies {
...
testImplementation "org.junit.platform:junit-platform-engine:1.0.2"
testImplementation "org.junit.platform:junit-platform-gradle-plugin:1.0.2"
testImplementation "org.junit.platform:junit-platform-launcher:1.0.2"
testImplementation "org.junit.platform:junit-platform-suite-api:1.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-engine:5.0.2"
testImplementation "org.junit.jupiter:junit-jupiter-params:5.0.2"
}
我在 运行 测试时得到的错误是:
org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-vintage' failed to discover tests
java.lang.NoClassDefFoundError: org/junit/runner/manipulation/Filter
...
Caused by: java.lang.ClassNotFoundException: org.junit.runner.manipulation.Filter
Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.launcher.Launcher.execute(Lorg/junit/platform/launcher/LauncherDiscoveryRequest;
如果我的测试引擎 ID 是 junit-vintage
,那么是否可以更改它?它似乎仍在使用 junit 4 引擎。我怎样才能改变它以便它使用 junit-jupiter?我从依赖项中删除了 junit-4.12,所以我想知道为什么它使用 junit-vintage 引擎而不是 junit-jupiter。
目前正在使用:
Android Studio 3.0
Build #AI-171.4408382, built on October 20, 2017
JRE: 1.8.0_152-release-915-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
如果我必须包含 junit-vintage-engine,如果我的所有测试都是用 JUnit5 风格编写的,为什么还需要包含?
如果您将 Android 与 JUnit Jupiter (JUnit 5) 一起使用,您可能会发现使用 android-junit5 插件配置 Gradle 构建更容易。