Не удается запустить тестовый класс «Тесты не найдены с помощью тестового бегуна ‘Junit5′»

#junit5

#junit5

Вопрос:

Я создал простое java-приложение Maven, в котором я пытаюсь запустить тестовый пример.

«Тесты не найдены с помощью тестового бегуна ‘JUnit5′» при выполнении run as JunitTestCase появляется всплывающее окно с указанием этого.

и на консоли:

 Java.lang.NoClassDefFoundError: org/junit/platform/engine/TestEngine
>   at
> org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry.loadTestEngines(ServiceLoaderTestEngineRegistry.java:35)
>   at
> org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:87)
>   at
> org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
>   at
> org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
>   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)   at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>   at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>   at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>   at java.lang.Class.newInstance(Class.java:442)  at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:371)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:366)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:310)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:225)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
> Caused by: java.lang.ClassNotFoundException:
> org.junit.platform.engine.TestEngine  at
> java.net.URLClassLoader.findClass(URLClassLoader.java:382)    at
> java.lang.ClassLoader.loadClass(ClassLoader.java:418)     at
> sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)     at
> java.lang.ClassLoader.loadClass(ClassLoader.java:351)     ... 14 more
 

мой pom.xml имеет :

  <dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.7.1</version>
    <scope>test</scope>
</dependency>
 

а также использование: org.junit.jupiter.api.Test

PS: — Я уже использую аннотации JUnit5. а с «Run as maven-test» будут запущены нулевые тесты.

Ответ №1:

Вы зависите только от API, предоставляющего вам, например, аннотации, но вам не хватает движка для выполнения ваших тестов. Либо добавьте junit-jupiter-engine как зависимость, либо переключитесь на удобную зависимость junit-jupiter .

Посмотрите на начальный образец maven (https://github.com/junit-team/junit5-samples/tree/r5.7.1/junit5-jupiter-starter-maven ), о том, как получить минимальный функционал pom.xml для junit5.