我想将 testng 与Surefire plug-in的Maven一起使用。我们的想法是使用组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
被忽略。
答案 0 :(得分:14)
我明白了 - 激怒配置实现!
<excludedGroups/>
不会覆盖<excludedGroups>integrationTest</excludedGroups>
。您需要指定任何(未知)组,例如<excludedGroups>none</excludedGroups>
。
答案 1 :(得分:9)
Failsafe plugin是执行此操作的最佳方式(当您发布此问题时可能无法使用)。它为构建生命周期添加了集成测试阶段。它允许您在测试之前和之后运行设置和拆卸活动,例如,这对于管理嵌入式容器非常有用。