我有一个Kotlin项目,当我运行Junit测试时,在IntelliJ中无法看到测试执行结果,而是收到以下消息:
未接收到测试事件
我正在使用这个设置:
macOS Mojave
Intellij CE 2019.2
JDK 11.0.3
Kotlin 1.3.50
Gradle 5.2.1
JUnit 4.12
你能帮我吗?
我有一个Kotlin项目,当我运行Junit测试时,在IntelliJ中无法看到测试执行结果,而是收到以下消息:
未接收到测试事件
我正在使用这个设置:
macOS Mojave
Intellij CE 2019.2
JDK 11.0.3
Kotlin 1.3.50
Gradle 5.2.1
JUnit 4.12
你能帮我吗?
在我自己尝试解决这个问题时,我发现JUnit 4可以工作,但是JUnit 5报告“未接收到测试”。 根据petrikainulainen.net ,我找到了解决办法。
即使Gradle 4.6(以及所有更新版本)原生支持JUnit 5,但默认情况下不启用此支持。 如果我们要启用它,我们必须确保测试任务使用JUnit 5而不是JUnit 4。
当我将以下代码添加到Gradle中时,JUnit 5就可以正常工作:
test {
useJUnitPlatform()
}
useJUnitPlatform()
这一行,运行测试,然后再取消注释似乎会有帮助。 - tsobe对于仍然遇到问题的人 -
请检查您在 Build
选项卡中是否有任何编译器错误。
我的情况是 Gradle JVM 配置无效(配置的jdk已从文件系统中删除)。
要解决这个问题,我需要在文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Gradle -> Gradle JVM 中更改Gradle的JVM配置。
由于JDK路径无效,它会显示为红色。
IntelliJ版本:2019.2.3
dependencies {
testImplementation(kotlin("test-junit5"))
testImplementation(platform("org.junit:junit-bom:5.7.0"))
testImplementation("org.junit.jupiter:junit-jupiter")
}
tasks.test {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
}
test {...}
之前不加task.
,我会得到以下错误!the function invoke() is not found
为了在 Junit 5 中进行测试,请在应用级别的build.gradle
文件中,在android{}
块下添加以下内容。
testOptions {
unitTests {
all {
useJUnitPlatform()
}
}
}
android
块中进行,除此之外,这确实为我解决了问题! - Patrick Aleman请确保您使用的是来自org.junit.Test的正确@Test注释; 有时在自动导入时,它可能会从其他库中获取注释。例如-org.junit.jupiter.api.Test;