2011-11-02 47 views
4

我使用Cobertura與Maven。Cobertura與Maven - 如果覆蓋率低於閾值,但仍然生成網站

如果覆蓋率低於給定閾值,我希望構建失敗,但我希望該網站(包括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覆蓋報告,但它無法構建沒有產生如果覆蓋的報告目標不符合。我怎樣才能改變它始終生成報告?

回答

4

如果代碼覆蓋目標未得到滿足,而不是構建失敗,是否可以將其設置爲將構建標記爲不穩定?我知道通過Jenkins CI服務器有辦法做到這一點,但我不確定是否可以通過pom.xml完成此操作。然後,「不穩定」的構建可能更多的是Jenkins特有的,並且可能不僅僅通過你的pom文件存在。

+0

我正在使用Jenkins/Hudson,所以對我來說這將是一個可接受的解決方案。但是,我不知道該怎麼做? – Rich

+0

安裝[Cobertura](https://wiki.jenkins-ci.org/display/JENKINS/Cobertura+Plugin)和[靜態分析](https://wiki.jenkins-ci.org/display/JENKINS/Static +代碼+分析+插件)插件,然後爲您的項目啓用Cobertura插件。一旦插件能夠根據不同的指標「改變天氣」,就有配置選項。 – Mike

+0

這工作非常好。靜態分析插件沒有找到我的findbugs或checkstlye報告,因爲我在一個Hudson版本中構建了一個多模塊pom,而且他們似乎沒有在子目錄中搜索。 Cobertura的工作正常,因爲它允許用戶指定的搜索路徑。 – Rich

1

一個快速的解決方法:取出check目標:

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

然後運行

mvn clean verify site cobertura:check 

如果您使用哈德森/詹金斯從pom.xml刪除所有的檢查和安裝的Cobertura插件到Hudson並在Hudson/Jenkins插件中配置檢查。

相關問題