2016-08-04 68 views
2

我想使用jacoco maven plugin來檢查構建過程中使用'check'目標的最低代碼覆蓋率。如何使用jacoco檢查多模塊maven項目的最小代碼覆蓋率?

對於單模塊項目一切正常。 但是對於多模塊,我想檢查所有模塊的代碼覆蓋率的平均水平,但check目標分別檢查每個模塊。

例如,模塊1具有70%的代碼覆蓋的模塊2具有100%代碼覆蓋,在平均從兩個模塊代碼覆蓋所有的行是85%。 我試圖將所有項目的代碼覆蓋率設置爲80%,但因爲第一個模塊而失敗。

從POM:

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.6.201602180812</version> 
    <executions> 
     <execution> 
      <id>default-prepare-agent</id> 
      <goals> 
       <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>default-report</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>report</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>default-check</id> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      <configuration> 
       <rules> 
        <rule> 
         <element>BUNDLE</element> 
         <limits> 
          <limit> 
           <counter>COMPLEXITY</counter> 
           <value>COVEREDRATIO</value> 
           <minimum>0.80</minimum> 
          </limit> 
         </limits> 
        </rule> 
       </rules> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

回答

1

簡短的回答:僅僅使用Maven和Jacoco不可能(在寫作的時候)。

official jacoco github page

目前JaCoCo Maven目標單模塊只工作:測試在模塊內執行,並在同一模塊內只貢獻的代碼覆蓋率。覆蓋率報告分別爲每個模塊創建。沒有內置支持跨模塊覆蓋或多個模塊的組合報告。

因此,只有使用Maven和Jacoco才能滿足您的需求。然而,您可以在企業設置中使用通用方法:Sonarqube,它將處理生成的jacoco文件(即jacoco.exec),並通過其Jacoco集成(在其最新版本中提供即裝即用)來彙總報告和治理。

+0

謝謝,我通過Jacoco插件爲Jenkins實現了這種方法 –

相關問題