OSで複数のJavaタイプが利用可能な場合、junitテストでJVMバージョンを指定する方法はありますか?
私はこのようなことをしたいと思います:
@JVM=1.5
public void test1(){
run();
}
@JVM=1.7
public void test2(){
run();
}
等..
いいえ、複数の 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 回実行します。
JUnit テスト ケースは単なる Java クラスの集まりであり、スタンドアロン プログラムではありません。そのため、それらは引き続き同じ JVM 内に制限されます。私の知る限り、意図したことを実行する簡単な方法はありません。できることは、テストする Java バージョンごとにテスト ケースをテスト スイートに分けることです。次に、プロジェクト設定で Java バージョンを変更し、適切なテスト スイートを実行します。
また、junit.jvm プロパティがありますが、実行中に変更できるかどうかはわかりません。ご覧になりましたか?