jacoco + eclipse單元測試率

概念

Jacoco:JaCoCo是一個開源的覆蓋率工具,它針對的開發語言是java,其使用方法很靈活,能夠嵌入到Ant、Maven中;能夠做爲Eclipse插件,能夠使用其JavaAgent技術監控Java程序等等。 
插樁:程序插樁,它是在保證被測程序原有邏輯完整性的基礎上在程序中插入一些探針(又稱爲「探測儀」,本質上就是進行信息採集的代碼段,能夠是賦值語句或採集覆蓋信息的函數調用),經過探針的執行並拋出程序運行的特徵數據,經過對這些數據的分析,能夠得到程序的控制流和數據流信息,進而獲得邏輯覆蓋等動態信息,從而實現測試目的的方法。 
On-the-fly插樁:JVM中經過-javaagent參數指定特定的jar文件啓動Instrumentation的代理程序,代理程序在經過Class Loader裝載一個class前判斷是否轉換修改class文件,將統計代碼插入class,測試覆蓋率分析能夠在JVM執行測試代碼的過程當中完成。 
Offline模式:在測試前先對文件進行插樁,而後生成插過樁的class或jar包,測試插過樁 的class和jar包後,會生成動態覆蓋信息到文件,最後統一對覆蓋信息進行處理,並生成報告。java

注入方法

比較有特點的幾個方法: 
Instrumentation 注入 
Byte Code 字節碼注入(在Byte Code時使用的ASM技術修改字節碼方法,能夠修改Jar文件、class文件字節碼文件,經過一個Probe探針的方式來注入,程序執行後能夠被記錄,它不會改變原有代碼的行爲) 
On-the-fly 在線模式 
Offline 離線模式app

Eclipse EclEmma Plugin

目前支持的啓動類型:

Local Java application java程序(有main) 
Eclipse/RCP application 桌面應用程序 
Equinox OSGi framework 
JUnit test 單元測試 
TestNG test 
JUnit plug-in test 
JUnit RAP test 
SWTBot test 
Scala application函數

安裝

Eclipse:Help->Eclipse Marketplace->搜索EclEmma 
這裏寫圖片描述工具

java application覆蓋測試

點擊工具欄中的按鈕這裏寫圖片描述(在此以前可能須要本身先運行一遍代碼)。測試結果以下: 
這裏寫圖片描述 
紅色:測試未覆蓋 
黃色:測試部分覆蓋(一般是if和switch) 
綠色:測試已覆蓋 
查看測試率,Window->Show View->Other->Java->Coverage 
這裏寫圖片描述
一般狀況下,Coverage顯示的是單次的覆蓋測試結果,若是想常看屢次的合併結果,點擊這裏寫圖片描述 
這裏寫圖片描述
Project Explorer中查看覆蓋率,Window->Preferences->General->Appearence->Label Decorations,選中Java Code Coverage。 
這裏寫圖片描述單元測試

JUnit Test覆蓋測試

右鍵一個須要測試的文件,new->JUnit->JUnit Test Case,完成一個測試類。選擇測試類啓動覆蓋測試。結果如圖: 
這裏寫圖片描述 
這裏寫圖片描述測試

生成覆蓋率報告

File->Export->Java->Coverage Report->選擇須要生成報告的測試源以及目標地址這裏寫圖片描述ui

相關文章
相關標籤/搜索