我正在研究一个大的Maven
Java项目,该项目包含TestNG
自动测试套件和Cucumber
套件自动测试套件。我意识到这并不理想,但不同的测试套件是由不同的子团队在项目的不同阶段编写的。展望未来,我们打算将这个项目分成更小的项目,但现在我们坚持这个组合。在pom.xml中配置两次Maven插件
surefire
插件可用于从Maven
运行这些测试,但插件需要针对我们的pom.xml
中的每个配置不同。
对于Cucumber
,我们正在与cucumber-jvm-parallel-plugin
一起使用它,它是配置是这样的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<forkCount>${threads}</forkCount>
<reuseForks>true</reuseForks>
<includes>
<include>**/Parallel*IT.class</include>
</includes>
</configuration>
</plugin>
对于我们TestNG
测试,配置是这样的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20.1</version>
<configuration>
<suiteXmlFiles>${file}</suiteXmlFiles>
<skipTests>false</skipTests>
<properties>
<property>
<name>suitethreadpoolsize</name>
<value>${threads}</value>
</property>
</properties>
</configuration>
</plugin>
我们不Maven
专家等,目前,我们只是将我们不希望用于我们正在运行的套件的插件注释掉。显然这很麻烦,也不是最好的做法,所以我非常感谢任何有关我们应该如何解决这个问题的建议。我们能否合理地在pom.xml中定义插件两次,并以某种方式传递一个标志来指示应该运行哪个版本?非常感谢您阅读我的问题。
集成测试应该使用maven-failsafe-plugin ...,它具有默认的命名模式... – khmarbaise