本来打算,通过打桩方式实现代码覆盖率的测试.
Jcoverage
停止更新避源了.
cobertura
是jcoveage的分支.
内部原理是通过ASM 在编译的时候代码插入.
我的想法,是通过他插入代码,然后测试好知道代码路径. 这个案例,路径了那些代码.
专业工具有这个功能,基本也是插入桩,然后分析.
我想通过ruby 来实现一个.java 代码分析和插入桩,然后取日志分析. for java
需要maven 构建
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 产生报告
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使用代码覆盖率学习笔记
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