天天看點

jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結

雲栖号: https://yqh.aliyun.com 第一手的上雲資訊,不同行業精選的上雲企業案例庫,基于衆多成功案例萃取而成的最佳實踐,助力您上雲決策!

0 前言

全是幹貨的技術殿堂

文章收錄在我的 GitHub 倉庫,歡迎Star/fork:

Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial

jacoco是一個開源的覆寫率工具,通過插樁方式來記錄代碼執行軌迹.

ant是建構工具,内置任務和可選任務組成的.Ant運作時需要一個XML檔案(建構檔案)。

1 覆寫率軟體對比

jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結

2 流程

  1. 配置jacocoagent參數,啟動服務
  2. 生成 jacoco.exec
  3. 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"

jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
  • ant report
    jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結

5 打開"index.html"報告,展示類的覆寫率檔案

jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結

什麼方法級别覆寫率你都還不滿足,想看到底哪行代碼覆寫到了?

那你得知道這有多坑了,最基本的配置是做不到的,我們還需要配置自己的 class 檔案路徑和源碼路徑!

  • 注意要具體到 class 目錄和 java 目錄!,即 com 目錄的上一級目錄,就能完美展示源碼的覆寫率情況了
    jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結
  • 綠色的為行覆寫充分
  • 紅色的為未覆寫的行
  • 紅色菱形的為分支全部未覆寫
  • 黃色菱形的為分支部分覆寫
  • 綠色菱形為分支完全覆寫

6 測試報告過濾

方案分兩種

  1. 在jacoco配置中過濾
  2. 在class檔案夾中删除掉無用的class檔案

    該方案不可逆,如果在統計完某一個moudel的覆寫率,之後在統計其他moudel的時候就無法直接實作;處理規則比較麻煩,與現有架構不好結合

下面介紹第一種方案主要修改build檔案的配置:

主要在

exclude

這個标簽裡面過濾,如果大塊排除,也可以在指定classfilepath的時候過濾。

jacoco關于Java代碼覆寫率你不得不會的基操!0 前言1 覆寫率軟體對比2 流程3 啟動jcocoagent4 生成報告5 打開"index.html"報告,展示類的覆寫率檔案6 測試報告過濾總結

總結

基操到此結束!入門完畢,開始愉快的進階玩耍與自行适配優化吧~

雲栖号線上課堂,每天都有産品技術專家分享

立即加入圈子:

https://c.tb.cn/F3.Z8gvnK 與專家面對面,及時了解課程最新動态!

原文釋出時間:2020-03-17

本文作者:javaedge

本文來自:“

阿裡雲雲栖社群

”,了解相關資訊可以關注“