Ранее я скачал junit-4.12.jar
и hamcrest-core-1.3.jar
и добавил их в свою Windows CLASSPATH
.Когда я хочу запустить тест JUnit, я открываю терминал Cygwin, перехожу в каталог моего класса тестирования и запускаю
$ java org.junit.runner.JUnitCore TestClass
или, если я не в правильном каталоге, я набираюотносительный путь файла к классу, разделенный \
(я читал, что это необходимо в Windows, даже используя Cygwin, при запуске java
или javac
).
Я скомпилировал тестовый класс изTestClass.java
, который был предоставлен кем-то другим.Предполагается, что в начале теста будет выдано testThrowsIllegalArgumentException()
, но вместо этого я получаю NoClassDefFoundError
- если программа каким-то образом провалилась перед самим тестированием - с последующей трассировкой стека:
JUnit version 4.12
Exception in thread "main" java.lang.NoClassDefFoundError: proj/TestClass (wrong name: TestClass)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
...
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:72)
at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
(есть ещетрассировка стека между ними, которую я удалил, чтобы сохранить пространство, потому что единственными внутренними шагами, которые показались мне важными, были начало и конец. Однако я могу отредактировать сообщение, чтобы включить полную трассировку стека.)
Я просмотрел все остальные часто задаваемые вопросы и ветку StackExchange, которые, на мой взгляд, актуальны, не найдя ответа на мою проблему.Сейчас кажется, что это может быть связано с CLASSPATH
.Я попытался добавить каталоги тестового класса и исходного класса, который он тестирует, используя java -cp
, но, как и все остальное, он не работал.Буду признателен за любую дополнительную помощь, потому что я сейчас в полном недоумении.