2016-03-27 2 views
0

TestJunit класстест Junit из командной строки Нет работоспособным метод исключения

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); 
    } 
} 

TestRunner class 
/********************************************/ 
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 -cp /root/Documents/unit\ tests/junit-4.10.jar TestJunit.java TestRunner.java 

компилировать и

java -cp /root/Documents/unit\ tests/junit-4.10.jar:. org.junit.runner.JUnitCore TestRunner 

бежать. Он компилируется без ошибок, но тесты терпят неудачу с исключением. Мои методы тестирования аннотируются с помощью @Test. Почему я получаю эту ошибку?

+0

При работе я должен упомянуть TestJunit, а не TestRunner. – user11

ответ

0

Вы получаете это исключение, если класс, переданный в аргументах командной строки, не имеет методов, аннотированных с помощью @Test. В этом случае TestRunner не имеет методов, аннотированных с помощью @Test.

Для выполнения модульных тестов, сделайте следующее:

java -cp /root/Documents/unit\ tests/junit-4.10.jar:. org.junit.runner.JUnitCore TestJunit 

или в качестве альтернативы:

java -cp /root/Documents/unit\ tests/junit-4.10.jar:. TestRunner 
+0

Спасибо, нашел – user11

0

В моем случае тестовый класс работал отлично от IDE, но он не работает из командной строки.

Я только получил его на работу, когда я добавил постфикс «Test» к имени класса теста.

Я использовал JUnit 4.12.

Смежные вопросы