7

OSで複数のJavaタイプが利用可能な場合、junitテストでJVMバージョンを指定する方法はありますか?

私はこのようなことをしたいと思います:

@JVM=1.5
public void test1(){
   run();
}

@JVM=1.7
public void test2(){
   run();
}

等..

4

3 に答える 3

7

いいえ、複数の VM で JUnit テストを複数回実行する必要があります。その後、 Assumeを使用して、正しい VM のテストのみを実行できます。

public void test1(){
   // not compiled or tested
   Assume.assumeThat(System.getProperty("java.version"), CoreMatchers.startsWith("1.5"));
   run();
}

public void test2(){
   Assume.assumeThat(System.getProperty("java.version"), CoreMatchers.startsWith("1.7"));
   run();
}

まとめていないので、間違いがあるかもしれませんがご了承ください。次に、ビルド ツールで、これらのテストを 2 つの異なる VM で 2 回実行します。

于 2013-01-28T23:22:44.970 に答える
1

JUnit テスト ケースは単なる Java クラスの集まりであり、スタンドアロン プログラムではありません。そのため、それらは引き続き同じ JVM 内に制限されます。私の知る限り、意図したことを実行する簡単な方法はありません。できることは、テストする Java バージョンごとにテスト ケースをテスト スイートに分けることです。次に、プロジェクト設定で Java バージョンを変更し、適切なテスト スイートを実行します。

また、junit.jvm プロパティがありますが、実行中に変更できるかどうかはわかりません。ご覧になりましたか?

于 2013-01-28T22:24:00.770 に答える