2016-03-27 23 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

実行時には、TestRunnerではなくTestJunitについて言及する必要があります。 – 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を使用していました。

関連する問題