如何使用Maven Surefire插件与不同的组进行测试和集成测试?

时间:2009-01-05 10:11:31

标签: maven-2 maven-plugin testng surefire

我想将 testng Surefire plug-inMaven一起使用。我们的想法是使用组integrationTest标记一些测试并运行插件两次:目标test不包括组integrationTest和目标integration-test包括组{仅限{1}}。

我找到了一些material用于运行插件以实现这两个目标并且可行,但第二次运行的组不起作用(不执行测试)。

以下是我integrationTest的构建元素中的插件配置:

pom.xml

有什么想法吗? <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <excludedGroups>integrationTest</excludedGroups> <reportFormat>brief</reportFormat> <trimStackTrace>true</trimStackTrace> <useFile>false</useFile> </configuration> <executions> <execution> <id>integration-test</id> <phase>integration-test</phase> <goals> <goal>test</goal> </goals> <configuration> <groups>integrationTest</groups> <excludedGroups/> <reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory> </configuration> </execution> </executions> </plugin> 按预期运行所有单元测试(不包括组mvn integration-test),但第二次测试运行只写:

  

运行TestSuite
  测试运行:0,失败:0,错误:0,跳过:0,已过去时间:0.562秒

integrationTest的结果符合预期,测试运行且组mvn test被忽略。

2 个答案:

答案 0 :(得分:14)

我明白了 - 激怒配置实现!

<excludedGroups/>不会覆盖<excludedGroups>integrationTest</excludedGroups>。您需要指定任何(未知)组,例如<excludedGroups>none</excludedGroups>

答案 1 :(得分:9)

Failsafe plugin是执行此操作的最佳方式(当您发布此问题时可能无法使用)。它为构建生命周期添加了集成测试阶段。它允许您在测试之前和之后运行设置和拆卸活动,例如,这对于管理嵌入式容器非常有用。