- EclEmma
- 官網 - Java Code Coverage for Eclipse
- 測試覆蓋率工具:EclEmma
- 實現原理
- Instrumentation:代碼注入,在產品代碼的關鍵位置插入統計代碼,從而獲得測試覆蓋率數據
- Class Instrumentation: 把統計代碼插入編譯好的.class文件
- Source Instrumentation:把統計代碼插入源代碼並編譯成新的.class文件
- Custom JVM:在JVM中把統計代碼插入.class。測試覆蓋率分析可以在JVM執行測試代碼的過程中完成
- Instrumentation:代碼注入,在產品代碼的關鍵位置插入統計代碼,從而獲得測試覆蓋率數據
- 功能
- 可以結合Junit或TestNG使用
- 作為Eclipse/STS的插件來使用
- 可以顯示各層級的覆蓋率情況
- 可以在源碼中高亮代碼覆蓋情況
- 可以生成覆蓋率測試報告
- 既可以通過單元測試來進行覆蓋率測試,也可以以Java Application等正常應用的形式來進行(編譯出來或者跑起來以后,交給測試人員進行測試,測試完成之后再生產報告)。
- 覆蓋率指標
- 行覆蓋率: 部分行覆蓋:a>b?a:b
- 基本語句塊覆蓋率: 基本語句塊:沒有if-else分支的代碼區域
- 類覆蓋率: 由JVM加載並初始化
- 方法覆蓋率: 第一個基本語句塊被執行
- 安裝
- 離線安裝。下載后解壓出feature和plugin目錄,並分別復制到Eclipse/STS的相應目錄下,重啟Eclipse/STS,工具欄中在調試、運行按鈕后面會多出一個按鈕,那么就是安裝成功了
- 使用
- 選擇想要進行覆蓋率測試的Project
- 然后在工具欄中按鈕的下拉菜單中可以選擇"Coverage As"后,可以進一步選擇當做Java Application、Junit Test還是TestNG來進行覆蓋率測試
- 運行完成后,可以在"Coverage" View窗口中來查看覆蓋率測試結果(各層級的覆蓋率百分比)。同時該項目的代碼中會用紅/綠色高亮跑過/未跑過的代碼。
- 窗口中可以導入/導出Session結果為HTML等格式的文件報告