Moin,
ich muss wieder mal eine Frage stellen, da ich nicht mehr weiterkomme ...
Ich möchte eine JUnit-Klasse implementieren. Leider bekomme ich beim Ausführen die Fehlermeldung
"java.lang.NoClassDefFoundError: org/junit/platform/commons/util/Preconditions"
[...]
"Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.Preconditions"
Nach dieser Fehlermeldung würde ich einen CLASSPATH-Fehler vermuten, aber dann dürften die Java-Klassen auch nicht laufen(?).
eingesetzte Versionen:
Eclipse: Version: 2019-03 (4.11.0), Build id: 20190314-1200
Java: 11.0.2
JUnit: 5
Nach google:
-> soll es ein Bug sein, aber der ist seit letztem Jahr behoben. Würde ich also ausschließen.
--> auch eine beschriebene Alternative (die Test-JUnit-Klassen in ein eigenes Projekt zu schreiben), hat nicht zum Erfolg
-> kann es an der JUnit-Version liegen. Diese solle man umstellen, dies habe ich getan, aber komme nicht weiter.
-> BuildPath ist gesetzt
Wahrscheinlich ist die Lösung recht simpel, aber ich komme nicht drauf ...
Meine zu testende Klasse
Meine Test-Klasse
Fehlermeldung aus Konsole
java.lang.NoClassDefFoundError: org/junit/platform/commons/util/Preconditions
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:83)
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:370)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:365)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:309)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:224)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:208)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.Preconditions
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 13 more
ich muss wieder mal eine Frage stellen, da ich nicht mehr weiterkomme ...
Ich möchte eine JUnit-Klasse implementieren. Leider bekomme ich beim Ausführen die Fehlermeldung
"java.lang.NoClassDefFoundError: org/junit/platform/commons/util/Preconditions"
[...]
"Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.Preconditions"
Nach dieser Fehlermeldung würde ich einen CLASSPATH-Fehler vermuten, aber dann dürften die Java-Klassen auch nicht laufen(?).
eingesetzte Versionen:
Eclipse: Version: 2019-03 (4.11.0), Build id: 20190314-1200
Java: 11.0.2
JUnit: 5
Nach google:
-> soll es ein Bug sein, aber der ist seit letztem Jahr behoben. Würde ich also ausschließen.
--> auch eine beschriebene Alternative (die Test-JUnit-Klassen in ein eigenes Projekt zu schreiben), hat nicht zum Erfolg
-> kann es an der JUnit-Version liegen. Diese solle man umstellen, dies habe ich getan, aber komme nicht weiter.
-> BuildPath ist gesetzt
Wahrscheinlich ist die Lösung recht simpel, aber ich komme nicht drauf ...
Meine zu testende Klasse
Java:
public class TelefonEintrag {
private String number;
private String name;
public TelefonEintrag(String name, String number) {
this.name = name;
this.number = number;
}
@Override
public String toString() {
return "Name: " + this.name + " Nummer: " + this.number;
}
public String getNumber() {
return this.number;
}
public String getName() {
return this.name;
}
public void setNumber(String number) {
this.number = number;
}
public void setName(String name) {
this.name = name;
}
}
Java:
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class TelefonEintragTest {
TelefonEintrag t = new TelefonEintrag("Max", "123456789");
@Test
public void testgetName() {
assertEquals("Max", t.getName());
}
@Test
public void testSetName() {
t.setName("Frieda");
assertEquals("Frieda", t.getName());
}
}
java.lang.NoClassDefFoundError: org/junit/platform/commons/util/Preconditions
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:83)
at org.junit.platform.launcher.core.LauncherFactory.create(LauncherFactory.java:67)
at org.eclipse.jdt.internal.junit5.runner.JUnit5TestLoader.<init>(JUnit5TestLoader.java:34)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:370)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:365)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:309)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:224)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:208)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.commons.util.Preconditions
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 13 more