Я знаю, что эта проблема была опубликована несколько раз раньше - я провел исследование до публикации здесь. Но я пытаюсь запустить тестовый пример JUnit, как показано на этом сайте: https://www.tutorialspoint.com/junit/junit_environment_setup.htm
В других публикациях в Stack об этом люди обычно говорят, что причиной является classpath, поэтому вот мои настройки:
ls -al /opt/junit/latest/
total 388
drwxr-xr-x. 2 dogzilla root 4096 Apr 17 21:00 .
drwxr-xr-x. 3 dogzilla root 4096 Apr 17 20:12 ..
-rw-rw-r--. 1 dogzilla dogzilla 1499 Apr 17 20:59 hamcrest-core-2.2.jar
-rw-rw-r--. 1 dogzilla dogzilla 381765 Apr 17 20:08 junit-4.13.jar
echo $CLASSPATH
/opt/junit/latest/:.
Вот исходный код:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
@Test
public void testAdd() {
String str = "Junit is working fine";
assertEquals("Junit is working fine",str);
}
}
и
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
Затем я запускаю:
javac TestRunner.java TestJunit.java
и
java TestRunner
Что выдает эти ошибки:
Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
at TestRunner.main(TestRunner.java:7)
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
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)
... 1 more
Я абсолютно потерян. С кодом из учебного пособия разве вызываемые методы не существуют? Я пошел к http://junit.sourceforge.net/javadoc/org/junit/runner/JUnitCore.html и все методы есть.
Почему это не удается во время выполнения?