[发明专利]一种实现精准监控代码覆盖率的方法在审
申请号: | 201910486131.8 | 申请日: | 2019-06-05 |
公开(公告)号: | CN110188048A | 公开(公告)日: | 2019-08-30 |
发明(设计)人: | 闻小龙;王公瑾;叶微微 | 申请(专利权)人: | 北京科摩仕捷科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市盛峰律师事务所 11337 | 代理人: | 于国栋 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 测试 自动化测试 监控代码 命令行 计算机技术领域 项目管理工具 结构化数据 覆盖率 测试过程 差异信息 代码封装 代码覆盖 二次开发 集成方式 监控测试 人力成本 通用组件 业务场景 远程命令 增量代码 可视化 可信度 校准 帮助 覆盖 源码 调用 编译 解析 文本 配置 | ||
1.一种实现精准监控代码覆盖率的方法,其特征在于,主要包括以下步骤:
S1,解析代码中的差异信息文本,形成结构化数据,并将其推送到源码的指定路径;
S2,向代码中自动注入开源项目管理工具配置;
S3,对编译后的代码封装远程命令和本地命令;
S4,通过命令行调用通用组件,提供命令行集成方式;
S5,最后对代码覆盖工具进行二次开发,以实现精准监控代码覆盖率。
2.根据权利要求1所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S1包括以下步骤:
S11,通过通用的数据交换格式生成方法,解析两个分支的差异信息;
S12,通过对差异信息的格式,做文件切割、匹配每个文件增量的行号;
S13,组装通用的数据交换格式并返回对返回格式进行配置。
3.根据权利要求1所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S2包括以下步骤:
S21,通过上下文管理器方法,在编译后的代码注入Jacoco配置之前备份文件;
S22,通过上下文管理器的方法在正常或异常退出后,还原备份的文件;
S23,在类实例被调用的时候,将目标服务器的IP和监听端口处理进模板,并注入maven配置。
4.根据权利要求1所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S3包括以下步骤:
S31,通过local执行命令行操作编译后的代码;
S32,使用远程命令和安全文件传送协议上传下载代码。
5.根据权利要求1所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S4包括以下步骤:
S41,定义模板样式;
S42,将命令行参数转化为结构化存储;
S43,定义命令行参数;
S44,制作入口文件,执行开源项目管理工具配置的注入操作。
6.根据权利要求5所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S41还包括解析返回值对应长短参数名的映射关系。
7.根据权利要求5所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S42包括解析命令行参数、处理命令行参数以及获取命令行参数。
8.根据权利要求1所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S5包括以下步骤:
S51,在覆盖率数据处理入口判断覆盖率数据对应的代码是否发生了改变;
S52,使用AST技术对源代码进行分析,判断jacoco传来的方法是否跟AST解析出来的方法是否相等;
S53,差异行信息解析核心代码解析差异信息中的数据,以文件维度下的差异行来存储差异数据;
S54,差异行信息转化为方法差异信息,遍历所有的方法,使用差异行来进行命中,如果一个方法被差异行命中,将被命中的方法置成被改变。
9.根据权利要求8所述的实现精准监控代码覆盖率的方法,其特征在于,步骤S52中具体包括:
1)判断存放了方法的行范围是否改变;
2)获取到包含是否变化信息的列表;
3)获取jacoco传来的方法的参数列表和AST解析源码后获取的方法参数列表;
4)通过布尔值判断jacoco传来的方法是否跟AST解析出来的方法是否相等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科摩仕捷科技有限公司,未经北京科摩仕捷科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910486131.8/1.html,转载请声明来源钻瓜专利网。