1.行覆蓋率(Line Coverage):
? ? ?- 衡量代碼中每一行是否被至少執行過一次。
2.分支覆蓋率(Branch Coverage):
? ? - 衡量代碼中每個條件分支(如if語句、switch語句等)是否都被執行過。
3.函數覆蓋率(Function Coverage):
? ? - 衡量代碼中每個函數是否都被調用過。
4.語句覆蓋率(Statement Coverage):
? ? - 衡量代碼中每個語句是否都被執行過。
5.路徑覆蓋率(Path Coverage):
? ? - 衡量代碼中所有可能的執行路徑是否都被覆蓋到。
覆蓋率報告的作用:
1.評估測試質量:
- 通過覆蓋率報告,開發人員和測試人員可以了解當前測試用例對代碼的覆蓋情況,從而評估測試的質量和充分性。
2.發現未測試的代碼:
- 覆蓋率報告可以幫助識別那些從未被執行過的代碼段,這些代碼段可能存在潛在的缺陷或邏輯錯誤。
3.優化測試用例:
- 根據覆蓋率報告,可以針對性地增加或修改測試用例,以提高代碼的覆蓋率,確保更多的代碼邏輯得到測試。
4.提高代碼質量:
- 通過提高代碼覆蓋率,可以減少代碼中的潛在缺陷,提高軟件的整體質量和可靠性。
5.支持持續集成:
- 在持續集成(CI)流程中,覆蓋率報告可以作為一個重要的指標,幫助團隊監控和維護代碼質量。如果覆蓋率低于某個閾值,可以觸發警報或阻止代碼合并。
6.輔助代碼審查:
- 覆蓋率報告可以作為代碼審查的一部分,幫助審查人員更好地理解代碼的測試情況,從而提出更有針對性的改進建議。
7.風險管理:
- 通過覆蓋率報告,項目管理者可以更好地評估項目的測試風險,制定相應的風險管理策略。
2.3.1 Android生成全量報告
一,Gradle任務生成報告
task jacocoTestReport(type: JacocoReport) {reports {xml.enabled = truehtml.enabled = true}def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*']def debugTree = fileTree(dir: "$buildDir/intermediates/javac/debug", excludes: fileFilter)def mainSrc = "$project.projectDir/src/main/java"sourceDirectories.from = files([mainSrc])classDirectories.from = files([debugTree])executionData.from = files("$buildDir/outputs/code_coverage/debugAndroidTest/connected/coverage.ec")
}
- sourceDirectories:項目的源碼文件,要指到java層,否則報告中無法渲染代碼覆蓋情況。
- classDirectories:項目構建的類文件,注意是插樁后構建的文件,但在javac文件夾下。
- executionData:覆蓋率數據文件路徑,如果沒有這個路徑,請創建這個目錄,并把上節下載的覆蓋率數據文件放到這個目錄中,重新命名。



二,命令行生成報告


java -jar ${jacococli.jar的路徑} report ${exec文件路徑}
--classfiles ${類文件路徑} --sourcefiles ${源碼文件路徑,要到/src/main/java}
--encoding utf-8 --html ${報告路徑}


2.3.2 Android增量報告(Incremental Report)
增量報告的特點
1.變化部分:
- 增量報告只關注當前構建與上一次構建之間的差異,而不是整個項目的完整覆蓋率。
- 例如,如果某個文件在上一次構建中已經完全覆蓋,而在當前構建中沒有新的測試用例,增量報告將不會顯示該文件的覆蓋率信息。
2.效率:
- 通過只顯示變化部分,增量報告可以更快地生成和解析,減少資源消耗。
- 在大型項目中,增量報告可以顯著提高構建和測試的速度。
3.問題定位:
- 增量報告有助于快速定位新引入的代碼或測試用例對覆蓋率的影響,便于開發者及時發現和修復問題。
4.持續集成:
- 在持續集成環境中,增量報告可以作為構建過程的一部分,幫助團隊實時監控代碼質量的變化。
- 例如,如果新提交的代碼導致覆蓋率下降,增量報告可以立即提醒開發人員進行修正。
增量報告的應用場景:
1.代碼審查:
- 在代碼審查過程中,增量報告可以幫助審查者快速了解新提交的代碼對現有測試用例的覆蓋情況,確保新代碼的質量。
2.持續集成:
- 在持續集成系統中,增量報告可以作為構建過程的一部分,自動檢測每次提交對代碼覆蓋率的影響,確保代碼質量的持續改進。
3.回歸測試:
- 在回歸測試中,增量報告可以幫助測試人員快速識別新引入的代碼是否引入了新的問題,確保回歸測試的高效性。
2.3.3 生成增量報告的方案


