J'ai créé une application Java Maven simple dans laquelle j'essaie d'exécuter le cas de test.

lors de l'exécution en tant que scénario de test Junit, une fenêtre contextuelle indique que "Aucun test trouvé avec le testeur 'JUnit 5'" .

et sur console:

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

mon pom.xml a:

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

et en utilisant: org.junit.jupiter.api.Test

PS: - J'utilise déjà les annotations JUnit5. et avec "Run as maven-test", aucun test n'a été exécuté.

0
kshitij 7 févr. 2021 à 11:47

1 réponse

Meilleure réponse

Vous ne dépendez que de l'API, vous donnant par exemple les annotations, mais il vous manque le moteur pour exécuter vos tests. Ajoutez junit-jupiter-engine comme dépendance ou passez à la dépendance de commodité junit-jupiter.

Regardez l'exemple de démarrage maven (https : //github.com/junit-team/junit5-samples/tree/r5.7.1/junit5-jupiter-starter-maven), sur la façon d'obtenir un pom.xml fonctionnel minimal pour junit5.

1
Kathrin Geilmann 9 févr. 2021 à 22:28