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.配置完成執行構建,完成后即可看到覆蓋率報告的結果

