使用Maven并行运行junit测试用例

时间:2019-01-24 14:45:11

标签: java maven junit

我在pom.xml中添加了以下插件以并行运行测试类

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
      <parallel>classes</parallel>
      <threadCount>10</threadCount>
      <systemPropertyVariables>
        <profile.name>${profile.name}</profile.name>
      </systemPropertyVariables>
      <forkCount>1</forkCount>
      <testFailureIgnore>true</testFailureIgnore>
    </configuration>
  </plugin>

我有

@RunWith(Suite.class)
@Suite.SuiteClasses({
   test_1.class,
   test_2.class
})

当我将其作为junit测试运行时,它会顺序运行而不是并行运行……有什么帮助?

1 个答案:

答案 0 :(得分:0)

<forkCount>1</forkcount>意味着1个线程!

  

默认设置为 forkCount = 1 / reuseForks = true ,这意味着maven-surefire-plugin创建一个新的JVM进程以执行中的所有测试一个Maven模块

来自:https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html#Forked_Test_Execution

要并行运行它们,您应该选择一个forkCount > 1,并且(为了安全起见)还选择<reuseForks>false</reuseForks>