17

我想将testngMavenSurefire 插件一起使用。这个想法是用一个组标记一些测试并运行插件两次:用于不包括组的目标和仅包括组的目标。integrationTesttestintegrationTestintegration-testintegrationTest

我找到了一些用于为这两个目标运行插件的材料并且有效,但第二次运行的组不起作用(不执行测试)。

这是 my 的 build 元素中的插件配置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按预期运行所有单元测试(不包括 group integrationTest),但第二次测试运行只写:

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

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

4

2 回答 2

14

我明白了 - 恼人的配置实现!

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

于 2009-01-06T08:55:45.507 回答
9

Failsafe 插件是最好的方法(当您发布此问题时它可能不可用)。它将集成测试阶段添加到构建生命周期。它允许您在测试之前和之后运行设置和拆卸活动,例如,这对于管理嵌入式容器很有用。

于 2011-03-12T09:45:12.460 回答