Компиляция и запуск набора тестов JUnit - PullRequest
0 голосов
/ 19 ноября 2018

Я создал набор тестов JUnit, но мне не удается собрать и запустить его из командной строки, в отличие от того, чтобы позволить IntelliJ выполнять свою магию. Я скачал junit-4.12.jar и hamcrest-core-1.3.jar. В идеале я ищу «переносимое» решение, то есть такое, где все необходимые параметры находятся в команде, а не в переменной пути где-то в файле bash.

Полагаю, я могу скомпилировать это нормально: javac -cp /path/to/junit-4.12.jar:. TestSuite.java. В результате получается файл TestSuite.class без ошибок.

Но я пробовал каждую команду, которую смог найти, и всегда получаю ошибки. Например: java -cp /path/to/junit-4.12.jar:/path/to/hamcrest-core-1.3.jar:. org.junit.runner.JUnitCore TestSuite дает:

JUnit version 4.12
    Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.junit.runner.Computer.getSuite(Computer.java:28)
    at org.junit.runner.Request.classes(Request.java:75)
    at org.junit.runner.JUnitCommandLineParseResult.createRequest(JUnitCommandLineParseResult.java:118)
    at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
    at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
    Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more

Есть идеи, что не так?

1 Ответ

0 голосов
/ 19 ноября 2018

Я думаю, что если вы окружите свой путь к классу двойными кавычками и будете использовать точку с запятой вместо двоеточия, это должно сработать:

java -cp "/path/to/junit-4.12.jar;/path/to/hamcrest-core-1.3.jar;." org.junit.runner.JUnitCore TestSuite

Если вы все еще получаете ту же ошибку, то я думаю, что у вас просто есть опечатка на вашем пути подколенного сухожилия.

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