1.引言
1.1目的与范围
代码覆盖率100%不能保证程序无问题,但是测试没有覆盖的代码是存在风险的。
代码覆盖率作为一种手段,用来辅助我们改善开发活动。
测试覆盖率,一种讲测试覆盖了多少需求点,还一种就是测试覆盖了多少行代码,多少个方法,多少个分支等。通过jacoco实现黑盒的代码覆盖率统计,对精准测试是非常有帮助,根据当前覆盖情况去进行针对性测试。
测试覆盖率可以和CI工具(如Jenkins)结合,本文目前针对非CI模式下,在使用CI的项目组中采用CI的模式,在CI模式下,更加期望通过单元测试自动进行覆盖率。
1.2使用要求
1.3阅读对象
1.4术语定义
对系统的关键性词汇进行统一定义,避免出现同义词和二义性语言。
术语/名词 解释说明
测试覆盖率
1.5参考资料
Java Code Coverage官网 https://www.eclemma.org/
2.Jacocoagent配置
2.1下载安装jar
下载jacocoagent.jar,复制到tomcat安装目录下的lib目录。
2.2源码调整
ClassProbesAdapter.java
2.3eclipse设置
2.3.1安装插件:
2.3.2设置tomcat参数
Vm arguments参数中增加如图参数(一定在最前边):
-javaagent:/xxx/tomcat8/lib/jacocoagent.jar=includes=x.*,output=tcpserver,port=8044,address=127.0.0.1 -Xverify:none
2.3.3打卡coverage的view
2.3.4功能测试及数据采集
启动tomcat进行功能测试,在coverage视图中右键导入数据。
测试过程中/完成后右键点击import session或者右键点击refresh进行数据的采集展示。
2.3.5单元测试及数据分析
如下图,操作更简单。
2.3.6分析数据
源码中对本次修改代码要求全覆盖。
3.其他说明
可以多次导入覆盖率数据,汇总形成最终的覆盖率。
4.附件
网友评论