[发明专利]一种基于JaCoCo基础上实现增量代码覆盖率统计的方法和装置在审
申请号: | 202110232658.5 | 申请日: | 2021-03-03 |
公开(公告)号: | CN112948249A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 邵磊 | 申请(专利权)人: | 浙江百应科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 杭州浙言专利代理事务所(普通合伙) 33370 | 代理人: | 易朝晖 |
地址: | 311121 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 jacoco 基础上 实现 增量 代码 覆盖率 统计 方法 装置 | ||
本发明公开了一种基于JaCoCo基础上实现增量代码覆盖率统计的方法,所述方法包括:获取测试完成后的exec文件,其中,所述exec文件至少包括探针的覆盖执行信息;在JVM中注入javaagent参数;使用JGit获取基线提交与测试提交之间的差异代码;对所述差异代码进行解析,将所述差异代码使用更小的颗粒度进行切割获得第一差异信息;根据所述第一差异信息,基于JaCoCo生成覆盖率模型解析所述exec文件获得增量代码的覆盖率报告。
技术领域
本申请涉及代码覆盖率统计领域,尤其涉及一种基于JaCoCo基础上实现增量代码覆盖率统计的方法和装置。
背景技术
目前,市场上java主要代码覆盖率工具包括EMMA和JaCoCo。JaCoCo优势:
(1) JaCoCo支持分支覆盖、引入了Agent模式。
(2) EMMA官网已经不维护了,JaCoCo是其团队开发的,可以理解为一个升级版。
(3) JaCoCo社区比较活跃,官网也在不断的维护更新。
Jacoco可以嵌入到Ant 、Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序。很多第三方的工具提供了对Jacoco的集成,如sonar、Jenkins等。
Jacoco包含了多种尺度的覆盖率计数器,包含指令级覆盖(Instructions,C0coverage),分支(Branches,C1coverage)、圈复杂度(CyclomaticComplexity)、行覆盖(Lines)、方法覆盖(non-abstract methods)、类覆盖(classes)等,但是并没有提供增量覆盖的解决方案。
随着业务发展,存量代码较多,对当下敏捷开发,现有的全量代码覆盖率统计使用传统的Jacoco执行耗时较长,效率低下。
发明内容
本申请要解决的技术问题,在于提供一种基于JaCoCo基础上实现增量代码覆盖率统计的方法和装置,以解决现有现有的全量代码覆盖率统计使用传统的Jacoco执行耗时较长,效率低下的技术问题。
为实现上述目的,本申请采用下述技术方案:
第一方面,本申请提供一种基于JaCoCo基础上实现增量代码覆盖率统计的方法,所述方法包括:
获取测试完成后的exec文件,其中,所述exec文件至少包括探针的覆盖执行信息;
在JVM中注入javaagent 参数;
使用JGit获取基线提交与测试提交之间的差异代码;
对所述差异代码进行解析,将所述差异代码使用更小的颗粒度进行切割获得第一差异信息;
根据所述第一差异信息,基于JaCoCo生成覆盖率模型解析所述exec文件获得增量代码的覆盖率报告。
第二方面,本申请提供一种基于JaCoCo基础上实现增量代码覆盖率统计系统,所述系统包括:
第一获取单元,用于获取测试完成后的exec文件,其中,所述exec文件至少包括探针的覆盖执行信息;
第一注入单元,用于在JVM中注入javaagent 参数;
第二获取单元,用于使用JGit获取基线提交与测试提交之间的差异代码;
第一解析单元,用于对所述差异代码进行解析,将所述差异代码使用更小的颗粒度进行切割获得第一差异信息;
第二解析单元,用于根据所述第一差异信息,基于JaCoCo生成的覆盖率模型解析所述exec文件获得增量代码的覆盖率报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江百应科技有限公司,未经浙江百应科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110232658.5/2.html,转载请声明来源钻瓜专利网。