在Junit中测试不同的Java版本

jay*_*100 3 java testing junit jvm version

有什么方法可以在junit测试中指定JVM版本,当OS上有多种java类型可用时?

我想做这样的事情:

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

@JVM=1.7
public void test2(){
   run();
}
Run Code Online (Sandbox Code Playgroud)

等等..

Mat*_*ell 6

不,您必须使用多个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();
}
Run Code Online (Sandbox Code Playgroud)

请注意,我没有编译这个,所以可能有错误.然后,在您的构建工具中,在两个不同的VM中运行这些测试两次.