如何告诉Maven2在新的JVM实例中逐个执行jUnit测试?

Bor*_*vić 13 junit maven-2 jvm

是否有可能告诉Maven2以串行模式在新的JVM实例(fork)中执行每个jUnit测试,即逐个执行.

FrV*_*aBe 28

你必须像这里解释的那样分叉JVM

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.9</version>
  <configuration>
    <forkMode>always</forkMode>
  </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

它也应该可以通过声明一个Sytem属性来实现

mvn -DforkMode=always test
Run Code Online (Sandbox Code Playgroud)

如文档中所述:每个测试类的"always"分叉.我不知道" pertest "设置是否会为每个测试分叉.


感谢@Djebel指出forkMode现在已弃用.还有的是"一个详细的文档叉选项和并行测试执行 ",以及如何使用新的参数forkCountreuseForks并且还包含以下迁移的提示:

Old Setting                         New Setting
forkMode=once (default)             forkCount=1 (default), reuseForks=true (default)
forkMode=always                     forkCount=1 (default), reuseForks=false
forkMode=never                      forkCount=0
forkMode=perthread, threadCount=N   forkCount=N, (reuseForks=false, if you did not had that one set)
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`forkMode`现已弃用,应使用[reuseForks](http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#reuseForks)代替 (3认同)