文章目录

  • 1. 覆盖率概述
  • 2. JaCoCo
  • 2.1 JaCoCo应用之offline模式
  • 2.1 JaCoCo应用之on-the-fly模式


1. 覆盖率概述

覆盖率是用来衡量测试代码对功能代码的测试情况,代码覆盖率指的是代码的覆盖程度,是一种度量方式。
测试覆盖率分为两个部分:

  1. 需求覆盖:指的是测试人员对需求的了解程度,根据需求的可测试性来拆分各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的映射关系,以用例的测试结果来验证需求的实现,可以理解为黑盒覆盖。
  2. 代码覆盖:为了更加全面的覆盖,可能还需要理解被测试程序的逻辑,需要考虑到每个函数的输入和输出,逻辑分支代码的执行情况,这个时候测试的执行情况就以代码覆盖率来衡量,可以理解为白盒测试。

2. JaCoCo

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar_02

2.1 JaCoCo应用之offline模式

配置使用JaCoCo

点击Edit Configurations:

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar_03

添加Junit应用:

androidtest 显示代码覆盖率 关于测试代码覆盖率_androidtest 显示代码覆盖率_04

选好要进行测试的类并对应用命名后,添加覆盖率设置:

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar_05

androidtest 显示代码覆盖率 关于测试代码覆盖率_androidtest 显示代码覆盖率_06

把Runner修改成JaCoCo:

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar包_07

运行测试函数或类程序:

androidtest 显示代码覆盖率 关于测试代码覆盖率_软件测试_08

运行成功后会显示覆盖率统计:

androidtest 显示代码覆盖率 关于测试代码覆盖率_jar包_09

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报告:

androidtest 显示代码覆盖率 关于测试代码覆盖率_java_10