我们的POM定义maven-surefire-plugin
如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14</version>
<configuration>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
<argLine>-Xms64m -Xmx256m</argLine>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
但是,当我们使用以下命令运行测试阶段/构建时,我们的Java测试(涉及一些并行测试和静态单例)只能正常运行:
mvn test -DforkMode=always
奇怪的是,即使我们将<configuration>
更改为使用(而不是更新的选项):
<forkMode>always</forkMode>
并运行:
mvn test
它会失败。但是如果我们运行:
mvn test -DforkMode=always
它会通过。如果我们在命令行中明确提供forkMode
,仍然将取代新的选项。我们已经尝试使用了多个版本的surefire插件,效果相同。
是否有可以覆盖此属性的位置,或者未正确使用XML配置的已知问题?
答案 0 :(得分:3)
菜鸟错误。我正在使用的配置列在一个未执行的单独<profile>
块中。配置文件:
<activeByDefault>true</activeByDefault>
根本没有包含自己的Surefire配置(因此它没有显示在搜索中),并且使用了继承值,这解释了为什么命令行系统属性能够影响其行为。