
【基本介紹】
eclemma是一款Java代碼覆蓋工具,基于EMMA,eclemma可讓你在Eclipse工作平臺中使用強(qiáng)大的Java代碼覆蓋工具EMMA,用于實(shí)際項(xiàng)目開發(fā),覆蓋率能保證代碼的邏輯正確率,使用這個(gè)review代碼都不出問題。EclEmma是一個(gè)免費(fèi)的用來測試Java代碼覆蓋率的Eclipse插件,可以用EclEmma直接在Eclipse工作區(qū)中測試Java程序,分析代碼覆蓋率,并且在Java編輯器中高亮顯示源文件的代碼覆蓋情況。
【軟件特性】
一個(gè)優(yōu)秀的開源軟件測試工具eclipse的一個(gè)插件
能夠?qū)τ?Java 語言編寫的程序進(jìn)行覆蓋測試
能夠在工作平臺中啟動
直接對代碼覆蓋進(jìn)行分析
覆蓋結(jié)果將立即被匯總并在Java源代碼編輯器中高亮顯示
也可程序運(yùn)行的結(jié)果生成詳盡的覆蓋測試報(bào)告
可以結(jié)合JUnit、TestNG使用
工作原理:Class Instrumentation
【功能特點(diǎn)】
clEmma將所謂的啟動模式添加到Eclipse工作臺。它被稱為覆蓋模式,其工作方式與現(xiàn)有的運(yùn)行和調(diào)試模式完全相同。覆蓋啟動模式可以從Run菜單或workbench的工具欄中激活:啟動工具欄
只需在覆蓋率模式中啟動應(yīng)用程序或單元測試,以收集覆蓋率信息。
目前支持以下發(fā)射類型:
本地Java應(yīng)用程序
Eclipse/RCP應(yīng)用程序
EquinoxOSGi框架
JUnit測試
TestNG測試
JUnit插件測試
JUnit說唱測試
SWTBot測試
Scala應(yīng)用程序
在請求或目標(biāo)應(yīng)用程序終止代碼覆蓋信息之后,Eclipse工作臺將自動提供這些信息:
覆蓋率概述:覆蓋率視圖列出了Java項(xiàng)目的覆蓋率總結(jié),允許向方法層次深入。
源高亮顯示:覆蓋率會話的結(jié)果也可以在Java源編輯器中直接看到。一種可定制的顏色代碼完全突出顯示,部分突出顯示,沒有覆蓋的行。這適用于您自己的源代碼以及附加到插裝的外部庫的源代碼。
您的測試覆蓋范圍的其他特性支持分析:
不同的計(jì)數(shù)器:選擇指令、分支、行、方法、類型或圈復(fù)雜度。
多個(gè)覆蓋率會話:可以在多個(gè)會話的覆蓋率數(shù)據(jù)之間切換。
合并會話:如果需要考慮多個(gè)不同的測試運(yùn)行,那么可以很容易地合并分析覆蓋會話。
導(dǎo)入/導(dǎo)出
雖然EclEmma主要是為Eclipse工作臺中的測試運(yùn)行和分析而設(shè)計(jì)的,但是它提供了一些導(dǎo)入/導(dǎo)出特性。
執(zhí)行數(shù)據(jù)導(dǎo)入:向?qū)г试S導(dǎo)入JaCoCo*。從外部啟動執(zhí)行數(shù)據(jù)文件。
覆蓋率報(bào)告輸出:覆蓋率數(shù)據(jù)可以用HTML、XML或CSV格式導(dǎo)出,也可以作為JaCoCo執(zhí)行數(shù)據(jù)文件(*.exec)導(dǎo)出。
【覆蓋率指標(biāo)】
行覆蓋率: 部分行覆蓋:a>b?a:b基本語句塊覆蓋率: 基本語句塊:沒有if-else分支的代碼區(qū)域
類覆蓋率: 由JVM加載并初始化
方法覆蓋率: 第一個(gè)基本語句塊被執(zhí)行
【安裝方法】
在線安裝方法一:在eclipse的菜單欄點(diǎn)擊 Help -> Install New Software -> add
Name:eclemma (名稱可以隨便填)
Location:http://update.eclemma.org/
此方法很可能安裝進(jìn)度十分慢,建議出門前開始安裝
在線安裝方法二:
在eclipse的菜單欄點(diǎn)擊 Help -> Eclipse Marketspace
在Find搜索框內(nèi)輸入eclemma點(diǎn)擊搜索,點(diǎn)擊安裝即可。
此方法安裝進(jìn)度在3-5分鐘左右,但可能安裝失敗
(注意:若FQ可適當(dāng)加快在線安裝速度。)
本地安裝方法一:
在eclipse的菜單欄點(diǎn)擊 Help -> Eclipse Marketspace -> add
Name:eclemma (名稱可以隨便填)
點(diǎn)擊Name右側(cè)的Local,選擇下載好的本地eclemma文件夾(解壓后),勾選讀取到的文件,開始安裝。
(或者點(diǎn)擊Location右側(cè)的Archive,選擇下載好的本地eclemma-2.3.2壓縮包,勾選讀取到的文件,開始安裝。)
注意:將最下面一行"contact all update..."前面的勾去掉可加快安裝速度(默認(rèn)勾選)。

本地安裝方法二:
將eclemma壓縮包下載下來后解壓到Eclipse本地目錄的dropins下,重啟Eclipse即可:

注意:若重啟Eclipse后eclemma插件圖標(biāo)未出現(xiàn),進(jìn)入圖中eclemma文件夾刪除其中的META-INF文件夾,再次重啟Eclipse即可(貌似高版本Eclipse會出現(xiàn)此類問題)。

推薦使用本地安裝的方法進(jìn)行安裝!
附:
eclemma插件安裝成功標(biāo)志:在Eclipse上會出現(xiàn)新的圖標(biāo)(下圖最左邊),也可以右鍵任意一個(gè)java文件,會有一個(gè)Coverage As的選項(xiàng)。
使用Coverage As運(yùn)行的代碼:綠色標(biāo)記表示該行語句完全執(zhí)行,黃色標(biāo)記表示該行語句部分執(zhí)行,紅色標(biāo)記表示該行語句沒有執(zhí)行到。
【使用方法】
1.在 Eclipse 的建立HelloWorld類2.通過 點(diǎn)擊按鈕來運(yùn)行 HelloWorld程序


3. 運(yùn)行結(jié)果如下:
綠色:完整執(zhí)行 紅色:沒執(zhí)行 黃色:部分執(zhí)行

4.調(diào)出Coverage窗口,它是用來統(tǒng)計(jì)程序的覆蓋測試率

5. 點(diǎn)擊紅色矩形框的按鈕能將多次測試的覆蓋數(shù)據(jù)綜合起來進(jìn)行察看
盡量進(jìn)行多次測試,使覆蓋率能接近100%


6. 在Coverage視圖主區(qū)域中點(diǎn)擊右鍵,出現(xiàn)的快捷菜單中選擇”Export Report…”

7.出現(xiàn)了下面的Export界面

Available sessions:要導(dǎo)出的session
Format:選擇報(bào)告的類型(HTML/XML/Text/EMMA session)
Destination:導(dǎo)出的session 存放的位置
8.還可以將該session的測試覆蓋率數(shù)據(jù)從外部導(dǎo)入
【使用實(shí)例】
下面通過項(xiàng)目介紹如何在使用了TestNG測試框架的項(xiàng)目中的使用EclEmma測試覆蓋率1.創(chuàng)建項(xiàng)目
項(xiàng)目中使用TestNG測試框架,包含被測類'Calculator'和測試類'CalculatorTest'。

2.用Coverage as TestNG Suite跑 用例

3.跑后結(jié)果
標(biāo)注源代碼和Coverage視圖

4.導(dǎo)出HTML報(bào)告
如何導(dǎo)出:
①要導(dǎo)出的session (session:一次測試覆蓋率交互活動)
②選擇報(bào)告的類型(HTML/XML/Text/EMMA session)
③存放位置
導(dǎo)出報(bào)告

HTML報(bào)告

HTML報(bào)告可以逐層展開,點(diǎn)擊方法還可以看到代碼的覆蓋情況。
列名含義:
missed Instructions代碼覆蓋率,
Missed Branches邏輯分支覆蓋率,
Missed Cxty判斷執(zhí)行數(shù),
missed Lines代碼行數(shù),
Methods方法個(gè)數(shù)。
5.導(dǎo)入導(dǎo)出合并覆蓋率Session
既可以導(dǎo)出session,也可以導(dǎo)入session,還可以合并session,這樣,可以將多次測試覆蓋率的結(jié)果進(jìn)行合并

6 測試引用的jar包的覆蓋率

其他Eclipse覆蓋率插件
EclEmma、Clover與Cobertura插件


































