本來打算,通過打樁方式實現(xiàn)代碼覆蓋率的測試.
Jcoverage
停止更新避源了.
cobertura
是jcoveage的分支.
內(nèi)部原理是通過ASM 在編譯的時候代碼插入.
我的想法,是通過他插入代碼,然后測試好知道代碼路徑. 這個案例,路徑了那些代碼.
專業(yè)工具有這個功能,基本也是插入樁,然后分析.
我想通過ruby 來實現(xiàn)一個.java 代碼分析和插入樁,然后取日志分析. for java
需要maven 構(gòu)建
https://github.com/cobertura/cobertura
http://repo1.maven.org/maven2/net/sourceforge/cobertura/cobertura/2.1.1/
二 命令行模式
參考官方文檔:http://cobertura.sourceforge.net/commandlinereference.html
1 插樁
cobertura-instrument.sh [ CODE_SOURCE_DIR | *.jar] --datafile=*.ser 會直接替換原有的class文件
2 合并
cobertura-merge.sh --datafile cobertura.ser 1.ser 2.ser… 合并到第一個文件中
3 產(chǎn)生報告
cobertura-report.sh --datafile *.ser --destination DIR --basedir SOURCE_CODE 生成報告文件到某個目錄,默認為html
--format xml : 報告生成xml文件
-Dnet.sourceforge.cobertura.datafile=${basedir}/cobertura.ser
指定生成的覆蓋率文件生成的路徑
----這方面資料特別少.
參考:
https://www.cs.drexel.edu/~jhk39/teaching/cs576su06/UnitTestingToolsPrimer.pdf
使用cobertura檢測測試覆蓋率
http://blog.csdn.net/lengyue_wy/article/details/6735269
Cobertura使用代碼覆蓋率學(xué)習(xí)筆記
http://wenku.baidu.com/view/c206c8e9b8f67c1cfad6b8ea.html
http://kang.iteye.com/blog/276113
http://blog.sina.com.cn/s/blog_7716c4b50100vlvx.html
Code Coverage Analysis
---很好的文章
http://www.bullseye.com/coverage.html