android - 在 IntelliJ 中运行多平台 Kotlin 测试产生 No JDK specified 错误

标签 android testing intellij-idea kotlin kotlin-multiplatform

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

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

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

通用模块设置如下所示:

Common module settings

SDKs 部分也能正确识别 JDKs:

SDKs

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

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

最佳答案

找到解决方案。

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

相反,出于此类目的,必须将要调试的测试放在特定的平台模块中,出于我的目的,我选择了 Android 模块,然后才能执行和调试它。

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

关于android - 在 IntelliJ 中运行多平台 Kotlin 测试产生 No JDK specified 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041195/

相关文章:

java - 在intellij中的模块之间使用共享jar时,添加模块依赖项、库和全局库有什么区别?

java - 如何解决JavaFX中Scene Builder不响应的问题?

android - 需要将 HTML 页面(使用 CSS)显示为翻页的书

java - LogCat 中的 FatalException 错误

android - TextView 中的富文本

unit-testing - 单元测试组合的数量惊人

android - 强制布局刷新/重绘android?

go - 使用 Golang 进行功能测试

c# - 如何测试依赖于显示模板的代码?

java - 无法调用 Arraylist 上定义的方法