如何将参数传递到pom.xml中作为并行运行测试的maven目标?

时间:2019-05-04 08:10:10

标签: java maven pom.xml junit5

我需要并行运行测试(JUnit5),但现在我不知道如何将参数传递到pom.xml中作为maven目标。

此刻,我在pom.xml中已经对maven-surefire-plugin进行了这种配置,但是我想将junit.jupiter.execution.parallel.enabled = true作为一个maven目标,例如"parallel=true"

          <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <properties>
                        <configurationParameters>
                            junit.jupiter.execution.parallel.enabled = true
                            junit.jupiter.execution.parallel.mode.default = concurrent
                            junit.jupiter.execution.parallel.config.strategy=dynamic
                            junit.jupiter.extensions.autodetection.enabled = true
                        </configurationParameters>
                    </properties>
                </configuration>
            </plugin>

选择何时并行运行测试,何时在同一线程中运行测试可能很有用。

我该怎么做?你能帮我吗?

1 个答案:

答案 0 :(得分:2)

我找到了解决方法。

pom.xml的属性中,我设置为:

<properties>
   ...
   <parallel>false</parallel>
</properties>

接下来,在插件配置中,我将对此进行设置:

           <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <properties>
                        <configurationParameters>
                            junit.jupiter.execution.parallel.enabled = ${parallel}
                            ...
                        </configurationParameters>
                    </properties>
                </configuration>
            </plugin>

现在,我可以这样mvn -Dparallel=true test来运行测试,并在我想并行运行测试时设置true,或者当我想在同一线程中运行测试时false设置