jacoco + gradle + testNG + jenkins 進行持續集成代碼覆蓋率的部署實現


jacoco集成gradle

   jacoco作為代碼覆蓋率統計的工具,目前社區依舊很活躍,也在持續更新,支持的測試方式也相對豐富(支持獨立測試工程和項目集成的測試模塊),如果項目想做代碼覆蓋率統計,還是首推jacoco。

   jacoco集成mvn的實現,網上介紹已經比較多了,這里不再贅述,只記錄一下jacoco集成gradle的過程,此處以項目集成的測試模塊做例。

 

  1.在測試模塊的build.gradle中引入jacoco插件。

apply plugin: "jacoco"

  2.指定jacoco的版本和報告路徑,這里只有兩個屬性,toolVersion指定版本號,reportsDir指定報告生成的路徑也就是 .exec文件的路徑,路徑為空時,默認 $buildDir/reports/jacoco

jacoco {
    toolVersion = "0.7.9"
    reportsDir = file("$buildDir/customJacocoReportDir")
}

   3.同樣在測試模塊的build.gradle文件中,test任務下,增加jacoco的任務,這樣在每次執行測試腳本后會自動執行jacoco,我這邊是與testng配套的,因此與useTestng()順序放一起就行了.

     特別關注,由於gradle在執行測試時對failcase是敏感的,只要存在一個case失敗,都會使本次構建失敗(直接拋出exception),導致在測試后無法執行jacoco,因此,需要跳過失敗case,增加屬性:

ignoreFailures = true
test {
  ignoreFailures = true

  useTestNG();  
      jacoco{ 
    append = false 
    destinationFile = file("$buildDir/jacoco/trade.exec") 
  } 
}

  

 4.在jenkis上做持續集成的話,基本上以上三點配置好之后就可以了,但如果本地想驗證看下覆蓋率報告的話,可以指定生成覆蓋率報告格式,新增jacoco報告任務

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination file("${buildDir}/jacocoHtml")
    }
}

 

jacoco在jenkins上的配置

 1.在jenkins系統管理-插件管理中,安裝jacoco插件,安裝好之后,增加的構建后任務中會出現生成jacoco測試報告的選項

2.增加任務后,出現覆蓋率配置,這里的配置需要特別注意,如果配錯無法找到對應文件時,執行的日志不會報錯,但會導致覆蓋率報告結果為0

 Path to exec files:代碼覆蓋率統計文件位置,即.exec生成的文件路徑

Path to class directories:classes文件位置,統計的源代碼編譯后的路徑

Path to source directories :源碼文件位置,統計的源代碼路徑

下面是設置覆蓋率百分比的提醒閾值。

太陽表示覆蓋率高於設置閾值,覆蓋率報告里會橙色提醒

烏雲表示覆蓋率低於設置閾值,覆蓋率報告里會橙色提醒

  3.配置完成執行構建,完成后即可看到覆蓋率報告的結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM