[发明专利]代码覆盖率报告的生成方法及装置有效
申请号: | 201510944821.5 | 申请日: | 2015-12-16 |
公开(公告)号: | CN105630671B | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 吕清娇;刘双 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;孙晓芳 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 覆盖率 报告 生成 方法 装置 | ||
本发明提供了一种代码覆盖率报告的生成方法及装置。该方法包括:当接收到代码覆盖率报告的生成指令时,获取被测程序的源码、被测程序的代码以及在测试被测程序的过程中生成的一个或多个代码覆盖率数据文件;调用并执行代码覆盖率工具中封装的第一任务,对一个或多个代码覆盖率数据文件进行合并处理;调用并执行代码覆盖率工具中封装的第二任务,读取合并后的代码覆盖率数据文件,并根据合并后的代码覆盖率数据文件、被测程序的源码以及被测程序的代码,生成代码覆盖率报告。本发明实施例能够跳过第三方构建工具的配置,将代码覆盖率报告的生成过程从项目构建环境中分离出来,省去了对报告生成环境进行复杂的配置,实现了统一自动化测试流程。
技术领域
本发明涉及测试领域,特别是一种代码覆盖率报告的生成方法及装置。
背景技术
代码覆盖率(code coverage)是反映测试用例对被测程序覆盖程度的重要指标,也是衡量测试完整性的一个参考值。无论是单元测试、API(Application ProgramInterface,应用程序接口)测试还是功能性测试,最终都是调用了程序的代码。测试结束后,通过代码覆盖率数据,可以知道测试是否充分,测试的弱点在哪些方面,进而可以指导开发者或测试者设计能够增加覆盖率的测试用例。
Java代码覆盖率的测试主要使用开源工具Jacoco(Java code coverage),其测试的流程为:1)构建android项目,同时插入用于生成覆盖率数据的代码;2)执行测试用例进行测试;3)在测试完成后,触发数据导出接口,导出覆盖率数据;4)生成覆盖率报告。
然而,目前生成覆盖率报告需要将Jacoco集成到第三方构建工具,在项目构建中做相应的环境配置。以android项目常用的构建工具Gradle为例,首先将获取的覆盖率数据文件存放到项目的build/outputs/code-coverage/connected路径下,然后在构建文件build.gradle中创建mergedData和jacocoTestReport任务,需要在这两个任务中注入项目源码、编译后文件(在源码中插入覆盖率统计的代码后,需要重新编译,并保存编译后的文件)、覆盖率数据合并文件和报告生成等路径信息。完成上述gradle配置后,执行gradlejacocoTestReport命令生成报告(这里,具体的过程是执行jacocoTestReport任务,调用Jacoco接口,由Jacoco工具接收覆盖率数据合并文件,并根据路径查找源码等信息,生成覆盖率报告),报告存放在项目根目录下的build/reports/jacoco/jacocoTestReport目录中。图1所示为现有技术中依赖Gradle工具生成报告的过程,其中虚线框部分为Gradle工具代理部分。
除了Gradle工具,其它常用的第三方工具,如Ant、Maven等都可以集成Jacoco源码。通过它们生成覆盖率报告的过程,都是以第三方工具调用Jacoco提供的接口实现的,由于项目构建使用的第三方工具存在差异,每种工具在构建任务时需要编写的代码和配置文件都存在差异,依据工具的类型实现过程也各不相同,使其可重用性差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的代码覆盖率报告的生成方法及相应的装置。
依据本发明的一方面,提供了一种代码覆盖率报告的生成方法,应用于代码覆盖率工具,所述代码覆盖率工具集成有代码覆盖率数据合并的功能和代码覆盖率报告生成的功能,所述代码覆盖率数据合并的功能被封装为第一任务,所述代码覆盖率报告生成的功能被封装为第二任务,所述方法包括:
当接收到代码覆盖率报告的生成指令时,获取被测程序的源码、所述被测程序的代码以及在测试所述被测程序的过程中生成的一个或多个代码覆盖率数据文件;
调用并执行所述代码覆盖率工具中封装的所述第一任务,对所述一个或多个代码覆盖率数据文件进行合并处理,得到合并后的代码覆盖率数据文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510944821.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:硬盘数据保护方法及计算机存储系统
- 下一篇:基于WEB的应用的自动化测试