雲栖号: https://yqh.aliyun.com 第一手的上雲資訊,不同行業精選的上雲企業案例庫,基于衆多成功案例萃取而成的最佳實踐,助力您上雲決策!
0 前言
全是幹貨的技術殿堂
文章收錄在我的 GitHub 倉庫,歡迎Star/fork:
Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial
jacoco是一個開源的覆寫率工具,通過插樁方式來記錄代碼執行軌迹.
ant是建構工具,内置任務和可選任務組成的.Ant運作時需要一個XML檔案(建構檔案)。
1 覆寫率軟體對比

2 流程
- 配置jacocoagent參數,啟動服務
- 生成 jacoco.exec
- ant 建構生成覆寫率報告
3 啟動jcocoagent
javaagent:javaagent是JDK 1.5以後引入的,也可以叫做Java代理.
後面跟的參數是jcocoagent的jar包位址.
- includes:包含在執行分析中的類名清單,*表示全部
- output:表示使用tcpserver代理偵聽由address和port屬性指定的TCP端口,并将執行的資料寫入此TCP連接配接,進而實作不停止項目運作實時生成代碼覆寫率報告
-
port:開啟的端口号
address: 開啟的ip位址,本地寫127.0.0.1
jar:運作服務的jar包位址
java -javaagent:/fs/jacocoagent.jar=includes=*,output=tcpserver,port=8888,address=127.0.0.1
4 生成報告
- ant dump
jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
生成"jacoco.exec"
- ant report
jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
5 打開"index.html"報告,展示類的覆寫率檔案
什麼方法級别覆寫率你都還不滿足,想看到底哪行代碼覆寫到了?
那你得知道這有多坑了,最基本的配置是做不到的,我們還需要配置自己的 class 檔案路徑和源碼路徑!
- 注意要具體到 class 目錄和 java 目錄!,即 com 目錄的上一級目錄,就能完美展示源碼的覆寫率情況了
jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
- 綠色的為行覆寫充分
- 紅色的為未覆寫的行
- 紅色菱形的為分支全部未覆寫
- 黃色菱形的為分支部分覆寫
- 綠色菱形為分支完全覆寫
6 測試報告過濾
方案分兩種
- 在jacoco配置中過濾
-
在class檔案夾中删除掉無用的class檔案
該方案不可逆,如果在統計完某一個moudel的覆寫率,之後在統計其他moudel的時候就無法直接實作;處理規則比較麻煩,與現有架構不好結合
下面介紹第一種方案主要修改build檔案的配置:
主要在
exclude
這個标簽裡面過濾,如果大塊排除,也可以在指定classfilepath的時候過濾。
總結
基操到此結束!入門完畢,開始愉快的進階玩耍與自行适配優化吧~
雲栖号線上課堂,每天都有産品技術專家分享
立即加入圈子:
https://c.tb.cn/F3.Z8gvnK 與專家面對面,及時了解課程最新動态!
原文釋出時間:2020-03-17
本文作者:javaedge
本文來自:“
阿裡雲雲栖社群”,了解相關資訊可以關注“
”