0

我在多平台 Kotlin 项目的公共模块中有几个测试。当我使用 gradle 执行这些测试时,例如./gradlew :android:test,它们都通过并且测试运行。

我现在遇到了一个更复杂的问题,我想在 IntelliJ 中调试实际测试。不幸的是,在 IntelliJ 中选择调试选项后,我收到No JDK specified错误。

未指定 JDK

我正在使用以下依赖项进行测试:

testImplementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
testImplementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"

1.2.41$kotlin_version_

常见的模块设置如下所示:

常用模块设置

SDKs 部分还可以正确识别 JDK:

SDK

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

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

4

1 回答 1

1

找到了解决方案。

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

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

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

于 2018-06-26T11:59:48.210 回答