Cobertura与Maven - 如果覆盖率低于阈值但仍然生成站点,则会失败

时间:2011-11-02 15:08:40

标签: maven cobertura

我正在和Maven一起使用Cobertura。

如果覆盖率低于给定的阈值,我希望构建失败,但我希望仍然生成该站点(包括Cobertura报告)。这是因为开发人员需要参考覆盖率报告,以了解他们可以添加更多覆盖范围来修复失败的构建。

目前我的pom看起来像是:

<project>
  <build>
    ...
    <plugins>
        <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>cobertura-maven-plugin</artifactId>
      <version>${cobertura.version}</version>
      <configuration>
    <check>
      <totalLineRate>${cobertura.check.totalLineRate}</totalLineRate>
    </check>
      </configuration>
      <executions>
    <execution>
      <goals>
        <goal>clean</goal>
        <goal>check</goal>
      </goals>
    </execution>
      </executions>
    </plugin>
        ...
    </plugins>
  </build>
  <reporting>
    <plugins>
<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>cobertura-maven-plugin</artifactId>
  <version>${cobertura.version}</version>
</plugin>
    ...
    </plugins>
  </reporting>
</project>

如果我运行mvn clean verify site,那么它会在满足覆盖率目标的情况下生成HTML覆盖率报告,但如果未满足覆盖目标,则无法在没有生成报告的情况下构建。如何将其更改为始终生成报告?

2 个答案:

答案 0 :(得分:4)

如果不满足代码覆盖率目标,而不是使构建失败,是否可以将其设置为将构建标记为不稳定?我知道有办法通过Jenkins CI服务器执行此操作,但我不确定是否可以通过pom.xml完成此操作。然后,“不稳定”构建可能更具有Jenkins特定性,并且可能不会仅通过您的pom文件存在。

答案 1 :(得分:1)

快速解决方法:删除check目标:

<executions>
    <execution>
        <goals>
            <goal>clean</goal>
        </goals>
    </execution>
</executions>

然后运行

mvn clean verify site cobertura:check

如果您正在使用Hudson / Jenkins从pom.xml删除所有检查并将Cobertura插件安装到Hudson并在Hudson / Jenkins插件中配置检查。