Ошибка "Test events were not received" при запуске тестов Kotlin в IntelliJ IDEA
Причина проблемы и её решение
Ошибка "Test events were not received" в IntelliJ IDEA при запуске тестов Kotlin через Gradle возникает из-за неправильной настройки интеграции между IDE и системой сборки. Когда вы нажимаете зеленую стрелочку, IntelliJ пытается запустить тест через Gradle, но не получает обратно события о ходе выполнения тестов. Это часто связано с конфликтом версий JUnit, неправильной конфигурацией Gradle или проблемами с плагином Kotlin.
Пошаговое решение
Вот проверенный способ исправить эту ошибку:
- Проверьте настройки запуска тестов в IntelliJ IDEA:
Перейдите вFile → Settings → Build, Execution, Deployment → Build Tools → Gradle. В разделе "Run tests using" выберите "IntelliJ IDEA" вместо "Gradle (Default)". Это заставит IDE запускать тесты напрямую, минуя Gradle-прокси. - Обновите конфигурацию build.gradle.kts:
Убедитесь, что вы используете правильные зависимости. Вот исправленная версия вашего файла:
plugins {
kotlin("jvm") version "1.9.0"
}
dependencies {
testImplementation(kotlin("test"))
testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
}
tasks.test {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
}
Ключевые изменения:
- Убрана отдельная зависимость
junit-jupiter-apiиjunit-jupiter-engine— достаточно однойjunit-jupiter, которая включает всё необходимое. - Добавлен блок
testLoggingдля отладки — он покажет в консоли, какие события происходят. - Убран плагин
allopen, если он не нужен для вашего проекта.
- Очистите кеш Gradle:
Выполните в терминале IntelliJ IDEA:
./gradlew clean
./gradlew build --refresh-dependencies
- Перезапустите IntelliJ IDEA:
После всех изменений выберитеFile → Invalidate Caches and Restart.
Альтернативное решение (если не помогло)
Если предыдущие шаги не сработали, попробуйте добавить в settings.gradle.kts следующую настройку:
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
И в build.gradle.kts явно укажите репозиторий для тестовых зависимостей:
repositories {
mavenCentral()
}
Проверка результата
После выполнения всех шагов запустите тест через зеленую стрелочку. Если всё настроено правильно, вы увидите:
- Зеленые галочки рядом с тестовыми методами
- Вывод в консоли с результатами тестов
- Отсутствие сообщения "Test events were not received"
Если проблема сохраняется, проверьте версию IntelliJ IDEA — обновите её до последней стабильной версии (на момент написания — 2023.3 или новее). Иногда баги в старых версиях IDE вызывают эту ошибку.
<<Дополнительный подход: использование Gradle Test Runner с правильной конфигурацией
Если вы предпочитаете оставить запуск тестов через Gradle (а не через IntelliJ IDEA), можно настроить Gradle-раннер правильно. Добавьте в build.gradle.kts следующий блок:
tasks.withType<Test> {
useJUnitPlatform()
systemProperty("junit.jupiter.execution.parallel.enabled", "false")
testLogging {
showStandardStreams = true
events("PASSED", "FAILED", "SKIPPED")
exceptionFormat = org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL
}
}
Затем в IntelliJ IDEA перейдите в Run → Edit Configurations, выберите конфигурацию Gradle для вашего теста и убедитесь, что в поле "Run" указано test --tests "com.example.CalculatorTest" (подставьте ваш пакет).
Также проверьте, что в gradle.properties нет строки org.gradle.parallel=true — параллельное выполнение иногда вызывает проблемы с передачей тестовых событий.
Этот метод полезен, если вам нужно, чтобы все тесты запускались через Gradle для единообразия с CI/CD системой.