我对多平台Kotlin项目的通用模块进行了几次测试。当我使用gradle执行这些测试时,例如./gradlew :android:test
,它们全部通过并运行测试。
我现在遇到了一个更复杂的问题,我想在IntelliJ中调试实际测试。不幸的是,在IntelliJ中选择调试选项后,出现了未指定JDK 错误。
我正在使用以下依赖项进行测试:
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部分还可以正确识别JDK:
我尝试将Module SDK从Kotlin SDK更改为java,但是IntelliJ然后希望我要求jUnit进行测试执行,如果可能的话,我不希望这样做。
有没有办法让调试器在IntelliJ中为Kotlin代码运行?
答案 0 :(得分:1)
找到了解决方案。
就像单独在通用模块中使用Gradle执行测试没有意义,例如./gradlew :common:test
,并且需要针对特定平台./gradlew :android:test
执行测试,因为公共模块可能包含expect
版声明,这些声明应该使用actual
在每个平台上实现关键字,直接在通用模块中调试也没有意义。
相反,出于这种目的,必须将要调试的测试放在特定的平台模块中,出于我的目的,我选择了Android模块,然后可以执行和调试它。
正如我所提到的,这种方法是必要的,因为在Android模块中,expect
版的结构实际上已由actual
实现取代。