文章目录
- 1. 覆盖率概述
- 2. JaCoCo
- 2.1 JaCoCo应用之offline模式
- 2.1 JaCoCo应用之on-the-fly模式
1. 覆盖率概述
覆盖率是用来衡量测试代码对功能代码的测试情况,代码覆盖率指的是代码的覆盖程度,是一种度量方式。
测试覆盖率分为两个部分:
- 需求覆盖:指的是测试人员对需求的了解程度,根据需求的可测试性来拆分各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的映射关系,以用例的测试结果来验证需求的实现,可以理解为黑盒覆盖。
- 代码覆盖:为了更加全面的覆盖,可能还需要理解被测试程序的逻辑,需要考虑到每个函数的输入和输出,逻辑分支代码的执行情况,这个时候测试的执行情况就以代码覆盖率来衡量,可以理解为白盒测试。
2. JaCoCo
2.1 JaCoCo应用之offline模式
配置使用JaCoCo
点击Edit Configurations:
添加Junit应用:
选好要进行测试的类并对应用命名后,添加覆盖率设置:
把Runner修改成JaCoCo:
运行测试函数或类程序:
运行成功后会显示覆盖率统计:
2.1 JaCoCo应用之on-the-fly模式
官网下载软件包:
JaCoCo
在lib目录下有很多jar包。
命令行打包被测试项目:
$ mvn package -Dmaven.test.skip=true. # 跳过了测试,可以根据需要设置
启动被测试项目:
# 启动javaagent并传参数
$ java -javaagent:lib中jar包的绝对路径=includes=*,output=tcpserver,port=9999,address=127.0.0.1,append=true -jar 被测试项目jar包路径
生成测试覆盖率统计文件:
$ java -jar jacoco中jacococli.jar包的绝对路径 dump --address 127.0.1 --port 9999 --destfile 指定文件夹/res.exec
生成html以及xml报告: