2017-08-08 26 views
0

JUnitテストを多数作成してテストJarを作成しています。 3番目のコードをテストしているので、 "mvn test"でテストを実行しませんが、実行可能なjarを生成して "java -jar"で実行します。実行を設定して特定のテストをスキップします

私のテストでは、どのコマンドラインを実行するかを選択したいのですが、これはコマンドラインにはありません。 私がやりたい事はそのような何かである私は、オプション-Dgroups =「カテゴリ」を試してみましたが、それは

「-jar javaの」では動作しません:私が見る唯一の方法

java -jar -Dcategories="cat1,cat2,cat5" executable.jar 

@Before 
    public void setup() { 
    Assume.assumeTrue(System.getProperty("categories") != null && System.getProperty("categories").contains("cat1")); 
    } 

System.getProperty("categories"); 

で私のコードでこれを読んさについて私はそのようなものを使用してみました0

それはテストをスキップしますが、私にはかなり悪いようにスタックトレースを与えます。 テストをスキップするオプションはありますか?

+0

スタックトレースを提供できますか? –

+0

テストは失敗しませんが、それは次のように私に何かを与える: org.junit.AssumptionViolatedException:だ:を、期待:あるorg.junit.Assume.assumeThat(Assume.java:95)で org.junitで.Assume.assumeTrue(Assume.java:41) ... –

答えて

0

JAVA Documentation says

javaの[オプション] -jar file.jar [引数...]

javaのあなたのケースで非常に

-jar executable.jar CAT1 CAT2のCAT5

public static void main(String[] args) { 

    for (String input : args) { 
     if (input.equalsIgnoreCase("cat1")) { 
      runTests(TestOne.class); 
     } else { 
      runTests(TestTwo.class); 
     } 
    } 

} 

private static void runTests(Class test) { 

    Result result = JUnitCore.runClasses(test); 
    for (Failure failure : result.getFailures()) { 
     System.out.println(failure.toString()); 
    } 
}