El problema
Siempre que ejecuto la prueba JUnit de mis proyectos (usando JUnit 5 con Java 9 y Eclipse Oxygen 1.a) me encuentro con el problema de que eclipse no puede encontrar ninguna prueba.
La descripción
Bajo la configuración de ejecución, eclipse ni siquiera puede encontrar el método que está anotado con @Test, sino que solo me muestra " (todos los métodos) ". Con suerte, la siguiente imagen ofrece una mejor visión de mi configuración:
Salida de consola:
java.lang.NoClassDefFoundError: org/junit/platform/launcher/core/LauncherFactory
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:31)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.base/java.lang.Class.newInstance(Unknown Source)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:368)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:363)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:307)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:222)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.core.LauncherFactory
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 11 more
Lo que intenté hasta ahora
Ya lo intenté
- para eliminar la carpeta de prueba de la ruta de compilación y agregarla nuevamente.
- para comenzar la prueba colocando el cursor sobre el método anotado con @Test y luego haga clic en "Ejecutar como prueba JUnit".
- eliminar JUnit de Buildpath y agregarlo nuevamente
- reiniciar eclipse
- También moví el proyecto completo de una máquina a otra y lo probé con la instalación de eclipse provista allí
- para cambiar el nombre del método de prueba.
- para volver a escribir la anotación @Test
Algunos de estos pasos se pueden encontrar aquí , pero al final el problema persistió.