使用JaCoCo進行代碼覆蓋率分析
使用JaCoCo進行代碼覆蓋率分析
一、背景說明
1、下載jacoco
https://www.jacoco.org/jacoco/

2、解壓縮后的兩個關鍵文件
-
jacocoagent.jar - 用于運行時收集覆蓋率數據
-
jacococli.jar - 用于操作覆蓋率數據
二、流程命令及說明
1.啟動一個Java應用程序并開啟覆蓋率監控
java -javaagent:jacocoagent.jar=includes=*,output=tcpserver,port=6300,address=localhost,append=true -jar boot-0.0.1-SNAPSHOT.jar
這條命令啟動一個Java應用程序,并附加JaCoCo的Java代理(jacocoagent.jar)。這個代理會在應用程序運行時收集覆蓋率數據
參數說明:
-
-javaagent:jacocoagent.jar:使用 JaCoCo 的 Java 代理 -
includes=*:監控所有類(可以使用包名限制,如 com.example.*) -
output=tcpserver:通過 TCP 服務器輸出覆蓋率數據 -
port=6300:TCP 服務器端口 -
address=localhost:只允許本地連接 -
append=true:如果文件已存在則追加數據 -
-jar boot-0.0.1-SNAPSHOT.jar:要監控的應用程序
2.導出覆蓋率數據
java -jar jacococli.jar dump --address localhost --port 6300 --destfile jacoco-demo.exec
參數說明:
-
dump:從運行中的應用導出覆蓋率數據 -
--address localhost:連接地址 -
--port 6300:連接端口 -
--destfile jacoco-demo.exec:導出到的數據文件
3.生成覆蓋率報告
java -jar jacococli.jar report jacoco-demo.exec --classfiles D:/CodesOfStudy/jacocoTest/boot/target/classes --sourcefiles D:/CodesOfStudy/jacocoTest/boot/src/main/java --html html-report --xml report.xml --encoding=utf-8
參數說明:
-
report:生成報告命令 -
jacoco-demo.exec:覆蓋率數據文件 -
--classfiles:編譯后的 class 文件目錄 -
--sourcefiles:源代碼目錄 -
--html html-report:生成 HTML 格式報告到 html-report 目錄 -
--xml report.xml:生成 XML 格式報告 -
--encoding=utf-8:指定編碼格式
4.流程說明
- 啟動監控:應用運行時,JaCoCo 通過 TCP 服務器實時收集覆蓋率數據
- 執行測試:運行你的測試用例(單元測試、集成測試等)
- 導出數據:從 TCP 服務器導出覆蓋率數據到 .exec 文件
- 生成報告:基于源代碼和編譯文件生成可視化報告
三、執行結果
1.啟動應用

2.執行測試

3.導出數據


4.生成報告



浙公網安備 33010602011771號