我在多平台 Kotlin 项目的公共(public)模块中进行了多项测试。当我使用 gradle 执行这些测试时,例如./gradlew :android:test
,它们都通过并运行测试。
我现在遇到了一个更复杂的问题,我想在 IntelliJ 中调试实际测试。不幸的是,在 IntelliJ 中选择调试选项后,我得到了一个No JDK specified错误。
我正在使用以下依赖项进行测试:
testImplementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
testImplementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
$kotlin_version
为 1.2.41。
通用模块设置如下所示:
SDKs 部分也能正确识别 JDKs:
我曾尝试将模块 SDK 从 Kotlin SDK 更改为 java,但是 IntelliJ 然后希望我需要 jUnit 来执行测试,如果可能的话我不希望这样做。
有没有办法让 Kotlin 代码的调试器在 IntelliJ 中运行?
最佳答案
找到解决方案。
就像单独在公共(public)模块中使用 Gradle 执行测试没有意义一样,例如./gradlew :common:test
并且需要针对特定平台执行测试./gradlew :android:test
,因为common模块可能包含expect
ed 声明应该使用 actual
关键字在每个平台上实现,直接在公共(public)模块中调试也没有意义。
相反,出于此类目的,必须将要调试的测试放在特定的平台模块中,出于我的目的,我选择了 Android 模块,然后才能执行和调试它。
正如我所提到的,这种方法是必要的,因为在 Android 模块中,expect
ed 结构实际上被 actual
实现所取代。
关于android - 在 IntelliJ 中运行多平台 Kotlin 测试产生 No JDK specified 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041195/