2016-03-27 61 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,但它並沒有從一個命令行工作。

我只在測試類名稱中添加「測試」後綴時才使用它。

我在使用JUnit 4.12。