Не удалось найти класс В JUnit 4.11
прежде всего, Я просмотрел все подобные вопросы о переполнении стека, и пока ничего не сработало для меня. Просто пытаюсь заставить JUnit работать с простым примером из книги JUnit in Action 2nd Edition Петра Тахчиева.
.javapublic class Calculator {
public double add(double number1, double number2) {
return number1 + number2;
}
}
CalculatorTest.java
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd() {
Calculator calc = new Calculator();
double result = calc.add(1,1);
assertEquals(2, result,0);
}
}
мои папки:
Я компиляции с:
javac -cp junit-4.11.jar *.java
моя папка после компиляции:
Я пытаюсь запустить тест с:
java -cp junit-4.11.jar;hamcrest-core-1.3.jar;. org.junit.runner.JUnitCore CalculatorTest
это мой выход:
когда я пытаюсь запустить отдельные классы, jre находит их, но не выдает ошибку основного метода, которая ожидается:
java Calculator
java CalculatorTest
выходы(которые ожидались, но он нашел классы):
есть идеи, как я могу получить JUnit / что бы это ни было, чтобы вести себя?
[EDIT]
Я запускаю все команды в C:UsersZachDocumentsdocsCodeJUnit
Скриншоты выше того же папка.
Я использую jdk1.7.0_45
и jre7
Я использую Windows 7 Professional N 64-бит
я запустил команду java с помощью-verbose: class и не было никаких ошибок, кроме одной в строке 426, которая видна ниже:
1 ответов
увлекательный. В любом случае, похоже, у вас есть junit-4.11.jar в lib / ext в вашем JRE. Это расположение предпочтительнее пути к классам, а классы, загруженные в этот каталог, загружаются в отдельный загрузчик классов.
что lib / ext classloader не может видеть класс, загруженный classpath classloader и, следовательно, JUnit не может видеть ваш код. Если вы используете Junit из командной строки таким образом, вероятно, лучше не помещать банку в папку lib/ext. Если вы бегали это программно (например, JUnitCore.runClasses(...)) затем вы можете загрузить свои классы с помощью обычного загрузчика классов и передать их JUnit в уединенный загрузчик классов, и все будет хорошо.
Итак, короткий ответ, вероятно, удалить junit jar из папки lib / ext, если вы знаете, почему он был там в первую очередь, и эта причина больше не действительна.