Emma(用於檢測和報告 JAVA 代碼覆蓋率的開源工具)

EMMA 是一個用於檢測和報告 JAVA 代碼覆蓋率的開源工具。它不但能很好的用於小型項目,很方便得得出覆蓋率報告,而且適用於大型企業級別的項目。 EMMA 有許多優點,首先你能免費得到它,並把它用於自己項目的開發。它支持許多種級別的覆蓋率指標:包,類,方法,語句塊(basic block)和行,特別是它能測出某一行是否只是被部分覆蓋,如條件語句短路的情況。它能生成 text,xml,html 等形式的報告,以滿足不同的需求,其 html 報告提供下鑽功能,我們能夠從 package 開始一步步連結到我們所關注的某個方法。EMMA 能和 Makefile 和 Ant 集成,便於套用於大型項目。特別還須指出的一點是,EMMA 的效率很高,這對於大型項目來說很重要。

EMMA 是通過向 .class 檔案中插入位元組碼的方式來跟蹤記錄被運行代碼信息的。EMMA 支持兩種模式:On the fly 和 Offline 模式。

基本介紹

  • 外文名:Emma
  • 用於:檢測和報告JAVA 代碼
  • 類型:開源工具
  • 支持:On the fly 和 Offline 模式
模式,簡單介紹,

模式

On the fly
On the fly 模式往載入的類中加入位元組碼,相當於用 EMMA 實現的 application class loader 替代原來的 application class loader。
Offline
Offline 模式在類被載入前,加入位元組碼。

簡單介紹

On the fly 模式比較方便,缺點也比較明顯,如它不能為被 boot class loader 載入的類生成覆蓋率報告,也不能為像 J2EE 容器那種自己有獨特 class loader 的類生成覆蓋率報告。這時,我們能求助於 Offline 模式。
EMMA 也支持兩種運行方式:Command line 和 Ant。
命令行一般和 On the fly 模式一起適用,對於簡單的項目能夠快速產生覆蓋率報告。通過 Ant task 來運行 EMMA 的話,特別適用於大型的項目。

相關詞條

熱門詞條

聯絡我們