JUnit провал теста | Вызывается: java .lang.ClassNotFoundException: org.junit.runner.JUnitCore - PullRequest
1 голос
/ 18 апреля 2020

Я знаю, что эта проблема была опубликована несколько раз раньше - я провел исследование до публикации здесь. Но я пытаюсь запустить тестовый пример 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 и все методы есть.

Почему это не удается во время выполнения?

1 Ответ

0 голосов
/ 23 апреля 2020

Публикация ответа, если у кого-то возникла такая же проблема и он однажды наткнулся на это сообщение. Это была проблема зависимости. https://junit.org/junit4/dependencies.html

Невозможно запустить hamcrest 2.2 с Junit 4. Нужен hamcrest 1.3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...