运行 IntelliJ 中的多平台 Kotlin 测试不产生 JDK 指定错误

Running multi platform Kotlin test in IntelliJ produces No JDK specified error

我在多平台 Kotlin 项目的公共模块中有几个测试。当我使用 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_version1.2.41

常用模块设置如下所示:

SDKs 部分也正确识别 JDKs:

我尝试将模块 SDK 从 Kotlin SDK 更改为 java,但是 IntelliJ 然后希望我需要 jUnit 来执行测试,如果可能的话我不希望这样做。

有没有办法在 IntelliJ 中为 Kotlin 代码制作调试器 运行?

找到解决方案。

就像单独在公共模块中使用 Gradle 执行测试一样没有意义,例如./gradlew :common:test 并且需要针对特定​​平台 ./gradlew :android:test 执行测试,因为通用模块可能包含 expected 声明,这些声明应该使用 actual 在每个平台上实现关键字,直接在common模块调试也没意义

相反,为了这样的目的,要调试的测试必须放在特定的平台模块中,为了我的目的,我选择了Android模块,然后就可以执行和调试了。

正如我所提到的,这种方法是必要的,因为在 Android 模块中,expected 结构实际上被 actual 实现所取代。