jacoco

1.jacoco
使用ASM修改字節碼
ASM:
通用的java字節碼操作和分析框架, 用於修改現有類或直接以二進制形式動態生成類, 
ASM提供了一些常見的字節碼轉換和分析算法, 可以從中構建自定義複雜轉換和代碼分析工具。
覆蓋率統計:
jacoco包含了多種尺度的覆蓋率計數器,
包含指令級(Instructions),分支(Branchs),圈複雜度(Complexity),行(lines),方法,類
(1)行覆蓋:
**全部未覆蓋:該行中指令均未執行,紅色標誌
**部分覆蓋:該行中部分指令執行,黃色標誌
**全覆蓋:該行中所有指令已執行,綠色標誌

(2)類覆蓋:

當類中至少有一個方法已執行,則該類被認爲已執行。Jacoco中認爲構造函數和靜態初始化方法也當作被執行過的方法。Java接口類型若包含靜態初始化方法,這種接口也被認爲是可執行的類。

(3)方法覆蓋:

每個非抽象方法至少包含一個指令。當至少一個指令被執行,該方法被認爲已執行。由於Jacoco基於字節碼級別的,構造函數和靜態初始化方法也被當作方法計算。其中有些方法,可能無法直接對應到源碼中,比如默認構造器或常量的初始化命令。
 
(4) 分支覆蓋
Jacoco爲if和switch語句計算分支覆蓋率。這個指標計算一個方法中的分支總數,並決定已執行和未執行的分支的數量。分支覆蓋率在class文件中缺少debug信息時也可使用。異常處理不在分支覆蓋的統計範圍內。
**全部未覆蓋:所有分支均未執行,紅色標誌
**部分覆蓋:只有部分分支被執行,黃色標誌
**全覆蓋:所有分支均已執行,綠色標誌
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章