Не удалось запустить тест JUnit 5 в IntelliJ 2018.2.2 с Gradle 4.9

Я пытаюсь запустить один модульный тест JUnit 5 из Intelli 2018.2.2 Community Edition. В проекте используется Gradle v4.9.

По какой-то причине при попытке запустить тестовый метод отдельно или в качестве тестового класса результат будет один и тот же:

Aug 29, 2018 3:37:47 PM 
org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name: MinHeapTest
at org.junit.platform.engine.discovery.ClassSelector.lambda$getJavaClass$0(ClassSelector.java:73)
at java.util.Optional.orElseThrow(Optional.java:290)
at org.junit.platform.engine.discovery.ClassSelector.getJavaClass(ClassSelector.java:72)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.lambda$resolve$3(DiscoverySelectorResolver.java:69)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolve(DiscoverySelectorResolver.java:68)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolveSelectors(DiscoverySelectorResolver.java:50)
at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:61)
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:130)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:117)
at org.junit.platform.launcher.core.DefaultLauncher.discover(DefaultLauncher.java:82)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:52)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)

Aug 29, 2018 3:37:47 PM org.junit.platform.launcher.core.DefaultLauncher handleThrowable
WARNING: TestEngine with ID 'junit-jupiter' failed to discover tests
org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name: MinHeapTest
at org.junit.platform.engine.discovery.ClassSelector.lambda$getJavaClass$0(ClassSelector.java:73)
at java.util.Optional.orElseThrow(Optional.java:290)
at org.junit.platform.engine.discovery.ClassSelector.getJavaClass(ClassSelector.java:72)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.lambda$resolve$3(DiscoverySelectorResolver.java:69)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolve(DiscoverySelectorResolver.java:68)
at org.junit.jupiter.engine.discovery.DiscoverySelectorResolver.resolveSelectors(DiscoverySelectorResolver.java:50)
at org.junit.jupiter.engine.JupiterTestEngine.discover(JupiterTestEngine.java:61)
at org.junit.platform.launcher.core.DefaultLauncher.discoverEngineRoot(DefaultLauncher.java:130)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:117)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:90)
at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:74)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)


Process finished with exit code 0
Empty test suite.

Запуск gradle test в командной строке работает нормально.

Конфигурация Gradle: применить плагин: 'java'

repositories {
    jcenter()
}

dependencies {
    testCompile("org.junit.jupiter:junit-jupiter-api:5.2.0")
    testRuntime("org.junit.jupiter:junit-jupiter-engine:5.2.0")
}

test {
    useJUnitPlatform()
}

Я читал о смутно похожих проблемах с IntelliJ 2016, но не о более поздних сборках.

Кто-нибудь еще сталкивается с этой проблемой? Похоже, что InteliJ использует какие-то другие средства для запуска тестов, кроме Gradle, но неясно, что именно.

На всякий случай я проверил YouTrack для аналогичных трассировок стека безрезультатно.

Указатели приветствуются!


person thetwan    schedule 29.08.2018    source источник


Ответы (1)


Не могли бы вы, пожалуйста, настроить в IntelliJ? Вы должны открыть диалоговое окно Preferences или Settings. Там вы можете найти Gradle, а затем найти Build, Execution, Deployment | Инструменты сборки | Грейдл | Runner и выберите Gradle Test Runner.

По умолчанию это Platform Test Runner.

person Ros5292    schedule 29.08.2018
comment
Это сработает! Не уверен, что случилось с бегуном платформы IntelliJ, но если я смогу запустить свои тесты, я буду счастлив. Спасибо! - person thetwan; 30.08.2018
comment
На самом деле, оказывается, это не позволяет отладку. Вполне может быть, что для отладки IntelliJ требуется запуск теста платформы. - person thetwan; 30.08.2018