作者:longxi | 来源:互联网 | 2023-01-03 18:46
我已经用Kotlin和Junit 5编写了一些基本的单元测试。不幸的是,当我从Intellij IDEA运行它们时,Gradle找不到这些测试。我从Gradle收到消息“找不到给定的测试包括:[de.mhaug.phd.btcwallet.BasicTests]”,从Intellij收到消息“未收到测试事件”。
有趣的是,从命令行使用“ ./gradlew:clean:test”运行该命令可以报告构建成功。但是,我的第一个测试显然是红色的,因此这表明Gradle没有执行它。
我已经尝试使用更详细的输出来运行它,但是没有任何帮助。这是一个最小的(不是)工作示例:
package de.mhaug.phd.btcwallet
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertFalse
import org.junit.jupiter.api.Test
class BasicTests {
@Test
fun hey() {
assertEquals(3,1+1)
}
@Test
fun hey2() {
assertFalse(3==1+1)
}
}
这是我的build.gradle:
buildscript {
ext.kotlin_version = '1.2.10'
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
group 'de.mhaug.phd'
version '1.0-SNAPSHOT'
apply plugin: 'kotlin'
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
compile group: 'org.bouncycastle', name: 'bcprov-jdk16', version: '1.46'
testImplementation group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.0.2'
testRuntimeOnly group: 'org.junit.jupiter', name: 'junit-jupiter-engine', version: '5.0.2'
// testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: ''
// testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-params', version: '5.0.2'
}
compileKotlin {
kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
kotlinOptions.jvmTarget = "1.8"
}
如何使Intellij / Gradle执行测试?
1> WesternGun..:
不,@ JB Nizet的第一条评论指出:test.useJUnitPlatform()
与JUnit 5依赖项一起添加。就是这样
http://junit.org/junit5/docs/current/user-guide/#running-tests-build-gradle
test {
useJUnitPlatform()
}
要么:
dependency {
...
// junit 5
testImplementation ('org.junit.jupiter:junit-jupiter-api')
testCompile ('org.junit.jupiter:junit-jupiter-params')
testRuntime ('org.junit.jupiter:junit-jupiter-engine')
testCompile ('org.mockito:mockito-junit-jupiter')
test.useJUnitPlatform() // fix "test events not received" bug in IDEA
}
支持他的评论,而不是这个答案!