You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Gradle项目中无法运行Kotlin测试的问题求助

Java Gradle项目中Kotlin测试无法执行的解决办法

问题本质

你当前的Gradle项目只启用了java插件,默认只会编译.java文件,完全不处理Kotlin的.kt测试代码。这直接导致测试类没被编译,运行测试时找不到对应类,出现ClassNotFoundException和Test events were not received的错误。

修复步骤

1. 添加Kotlin JVM插件

在build.gradle的插件块中加入Kotlin JVM插件,让Gradle具备编译Kotlin代码的能力:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.9.20' // 可替换为最新稳定版Kotlin
}

2. 补充Kotlin测试依赖

添加Kotlin对JUnit5的适配依赖,确保Kotlin测试能正常集成JUnit5:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    testImplementation 'org.jetbrains.kotlinx:lincheck:2.34'
    // 新增Kotlin测试依赖
    testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
}

3. 调整测试目录(推荐)

把测试目录从test/java改为test/kotlin,符合Gradle对Kotlin源文件的默认约定:

- src
  - main
    - java
      - org.***.***
        - ...
  - test
    - kotlin
      - org.***.***
        - ...
        - TestTest.kt

如果不想改动目录结构,也可以在build.gradle中配置源集,让Gradle识别test/java下的Kotlin文件:

sourceSets {
    test {
        kotlin {
            srcDirs += 'src/test/java'
        }
    }
}

4. 验证修复

  • 终端执行./gradlew clean test,清理旧构建产物后重新运行测试
  • IntelliJ IDEA中点击Gradle工具栏的“Sync Project with Gradle Files”,同步配置后再运行测试

完整修改后的build.gradle示例:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.9.20'
}

group 'org.***'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
    testImplementation 'org.jetbrains.kotlinx:lincheck:2.34'
    testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
}

test {
    useJUnitPlatform()
}

内容的提问来源于stack exchange,提问作者FedMam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 01:57:32