如何在maven-cobertura-plugin中运行cobertura测试?

时间:2011-12-09 17:21:38

标签: maven cobertura

为了微调哪些测试在哪些时间以及在哪些环境中运行,我们为maven-surefire-plugin设置了几个执行。我们将默认配置设置为跳过所有测试,然后为我们想要的执行启用它们。这本身对我们很有用。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
     <skip>true</skip>
  </configuration>
  <executions>
     <execution>
       <id>unit-tests</id>
       <phase>test</phase>
       <goals>
          <goal>test</goal>
       </goals>
       <configuration>
          <skip>false</skip>
          <includes>
             <include>**/*Tests.java</include>
          </includes>
          <excludes>
             <exclude>**/*IntegrationTests.java</exclude>
          </excludes>
       </configuration>
     <execution>
     <execution>
       <id>integration-tests</id>
       <phase>integration-test</phase>
       <goals>
          <goal>test</goal>
       </goals>
       <configuration>
          <skip>false</skip>
          <includes>
             <include>**/*IntegrationTests.java</include>
          </includes>
       </configuration>
     <execution>
   </executions>
</plugin>

当我将maven-cobertura-plugin添加到混音中时,我遇到了问题。 cobertura目标运行,并成功地完成我的课程。但是,没有测试运行。我假设这是因为cobertura运行的测试执行是跳过的。但是,我找不到如何指定为此执行设置的阶段和目标。当我打开所有测试时,输出似乎表明它们仍然在这些单元测试和集成测试阶段/目标中运行。

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>2.4</version>
  <configuration>
     <formats>
        <format>xml</format>
        <format>html</format>
     </formats>
  </configuration>
  <executions>
     <execution>
        <phase>package</phase>
        <goals>
           <goal>cobertura</goal>
        </goals>
     </execution>
  </executions>
</plugin>

我如何指定一个surefire执行,以便cobertura将针对已检测的类运行它?

1 个答案:

答案 0 :(得分:2)

cobertura:cobertura

note from the docs
  • 必须为wired as a report
  • 仪器,测试并生成报告
  • 在自己的生命周期cobertura(不是default生命周期)中运行
  • 在自行运行之前调用生命周期阶段test

因此,相应地连接它应该自动导致仪器和测试。