2 - 增量代码覆盖率统计
针对统计代码的不同,可以分为全量代码覆盖率统计和增量代码覆盖率统计
全量统计较为简单,默认每次都是对全量代码进行统计的,但是由于版本开发过程中,每次都是增量代码迭代,而测试过程中并不需要每一轮都覆盖全量用例,因此找出增量代码并对增量代码进行覆盖率统计也是有必要的
要对增量代码覆盖率进行统计,目前大致有两个思路,修改jacoco源码和改造全量覆盖率结果
1、修改jacoco源码,使得其只支持对增量代码进行统计
(1)获取测试完成后的exec文件 此文件为二进制文件,里边包含有覆盖率信息
(2)获取基线去当前版本代码之间的差异
(3)切割差异代码为更小的颗粒,例如方法或者类等,可以尽量切割的小一点
(4)改造jacoco,使它支持仅对差异代码生成覆盖率报告
2、不修改jacoco,修改全量覆盖率报告,使得其仅显示增量代码报告部分
(1)获取测试完成后的exec文件,并生成覆盖率报告
(2)获取两个版本之间的差异代码,使用git diff命令
(3)解析差异代码,切割代码为更小的颗粒,此次切割最小单位为方法
(4)根据差异代码文件获取增量代码修改文件名、服务名、类名、方法名以及修改内容所在行数
(5)在全量覆盖率报告中根据文件名、服务名、类名、方法名修改报告中的内容,删除未修改的内容信息,仅保留增量代码对应的报告内容