Запуск многоплатформенного теста Kotlin в IntelliJ выдает ошибку, не указанную в JDK - PullRequest
0 голосов
/ 26 июня 2018

У меня есть несколько тестов в общем модуле для мультиплатформенного проекта Kotlin. Когда я выполняю эти тесты, используя gradle, например, ./gradlew :android:test, они все проходят и тесты запускаются.

Я столкнулся с более сложной проблемой, когда я хотел бы отладить реальный тест в IntelliJ. К сожалению, при выборе опции отладки в IntelliJ я получаю Не указан JDK ошибка.

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 .

Общие настройки модуля выглядят так:

Common module settings

В разделе SDK также правильно распознаются JDK:

SDKs

Я попытался изменить Module SDK с Kotlin SDK на java, однако IntelliJ тогда требует, чтобы я потребовал jUnit для выполнения теста, чего я бы предпочел не делать, если это возможно.

Есть ли способ заставить отладчик работать в IntelliJ для кода Kotlin?

1 Ответ

0 голосов
/ 26 июня 2018

Нашли решение.

Так же, как не имеет смысла выполнять тесты с использованием Gradle только в общем модуле, например, ./gradlew :common:test, и тесты должны выполняться для конкретной платформы ./gradlew :android:test,поскольку общий модуль может содержать объявления expect ed, которые должны быть реализованы для каждой платформы с использованием ключевого слова actual, также нет смысла напрямую отлаживать в общем модуле.

Вместо этого для такихВ этом случае тест для отладки должен быть помещен в модуль конкретной платформы. Для этой цели я выбрал модуль Android, а затем его можно выполнить и отладить.

Как я уже говорил, такой подход необходимпотому что в модуле Android структуры expect ed фактически заменены реализациями actual.

...