有没有办法在junit测试中指定JVM版本,当OS上有多种java类型?
我想做这样的事情:
@JVM=1.5
public void test1(){
run();
}
@JVM=1.7
public void test2(){
run();
}
等。
答案 0 :(得分: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();
}
请注意我还没编译过,所以可能会有错误。然后,在您的构建工具中,在两个不同的VM中运行这些测试两次。
答案 1 :(得分:0)
JUnit测试用例只是一堆Java类,而不是一个独立的程序。所以他们仍然会被限制在同一个JVM中。 AFAIK没有简单的方法可以做你想做的事情。您可以做的是将测试用例分成要测试的每个Java版本的测试套件。然后在项目设置中更改java版本并运行相应的测试套件。
还有一个junit.jvm属性,但我不确定你是否可以在执行中更改它。你看过它吗?