一种代码覆盖率报告的生成方法和装置的制造方法

文档序号:9826204阅读:363来源:国知局
一种代码覆盖率报告的生成方法和装置的制造方法
【技术领域】
[0001] 本发明涉及测试技术领域,特别是涉及一种代码覆盖率报告的生成方法和一种代 码覆盖率报告的生成装置。
【背景技术】
[0002] 在对应用进行测试时,代码覆盖度是衡量测试的重要指标之一,也是衡量测试工 作进展情况的重要指标之一。
[0003]无论是单元测试、API (Application Programming Interface,应用程序编程接 口)测试还是功能性测试,最终都是调用了产品的代码。
[0004] 测试结束后,通过代码覆盖率数据,可以知道测试得是否充分,测试的弱点在哪些 方面,进而可以指导设计能够增加覆盖率的测试用例。
[0005] 其中,以Android(安卓)平台中,代码覆盖率主要使用测试工具Jacoco进行统计。
[0006] 目前覆盖率报告的生成过程是通过将Jacoco集成到第三方开发平台,在项目构建 中做相应的环境配置实现的。
[0007] 由于项目构建使用的第三方平台存在差异,依据平台的类型,实现过程也各不相 同,此处以Android项目常用的构建工具Gradle为例。
[0008] 如图1所示,在将获取的覆盖率数据文件存放到项目的build/outputs/code-coverage/connected路径下,然后在创建gradle任务(build·gradle),包括mergedData和 jacocoTestReport任务,需要在这两个任务中注入项目源代码路径、编译后的文件路径、覆 盖率数据路径和代码覆盖率报告生成路径等信息。
[0009]完成项目的上述gradle配置后,接收Gradle任务的数据,调用Jacoco接口,接收 Gradle传入的数据,根据路径查找源码等信息,生成代码覆盖率报告。
[0010] 除了Gradle工具,其它常用的第三方工具,如Ant、Maven等都可以集成Jacoco。通 过它们生成覆盖率报告的过程,虽然每种工具在构建任务时需要编写的代码和配置文件都 存在差异,单都是以第三方工具调用Jacoco提供的接口实现的。
[0011]在这些第三方工具生成覆盖率报告的过程,不仅要使用第三方工具,还需对代码 覆盖率报告的生成环境进行复杂的配置,导致手工操作依赖程度高,自动化实现难度大;此 外,依赖不同的第三方工具,其配置方案也不同,使其可重用性差。

【发明内容】

[0012] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上 述问题的一种代码覆盖率报告的生成方法和相应的一种代码覆盖率报告的生成装置。
[0013] 依据本发明的一个方面,提供了一种代码覆盖率报告的生成方法,包括:
[0014] 调用待测试的应用中的测试工具读取预设的配置文件;所述配置文件中设置有第 一存储目录和第二存储目录;
[0015] 从所述第一存储目录读取在测试所述应用时生成的代码覆盖率数据文件;
[0016] 从所述第二存储目录读取基于应用源代码编译的应用文件;
[0017] 根据所述代码覆盖率数据文件和所述应用文件生成代码覆盖率报告。
[0018] 可选地,还包括:
[0019] 当对待测试的应用进行测试时,生成代码覆盖率数据文件;
[0020] 调用待测试的应用中的测试工具读取预设的配置文件;
[0021 ]将所述代码覆盖率数据文件写入所述第一存储目录中。
[0022] 可选地,在所述根据所述应用文件和所述代码覆盖率数据文件生成代码覆盖率报 告的步骤之前,所述方法还包括:
[0023] 当所述代码覆盖率数据文件为多个时,合并多个代码覆盖率数据文件。
[0024]可选地,所述配置文件中还设置有第三存储目录,所述方法还包括:
[0025]将所述代码覆盖率报告输出至所述第三存储目录。
[0026] 可选地,还包括:
[0027] 调用待测试的应用中的测试工具,按照预设的配置选项进行其他生成代码覆盖率 报告处理。
[0028] 可选地,所述配置选项包括如下的一种或多种:
[0029] 代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
[0030] 所述按照预设的配置选项进行其他生成代码覆盖率报告处理的步骤包括:
[0031 ]按照所述格式生成代码覆盖率报告;
[0032] 和/或,
[0033] 将合并后的覆盖率数据文件输出至所述第四存储目录;
[0034] 和/或,
[0035] 从所述第四存储目录中读取合并后的覆盖率数据文件。
[0036] 根据本发明的另一方面,提供了一种代码覆盖率报告的生成装置,包括:
[0037] 配置文件读取模块,适于调用待测试的应用中的测试工具读取预设的配置文件; 所述配置文件中设置有第一存储目录和第二存储目录;
[0038] 代码覆盖率数据文件读取模块,适于从所述第一存储目录读取在测试所述应用时 生成的代码覆盖率数据文件;
[0039] 应用文件读取模块,适于从所述第二存储目录读取基于应用源代码编译的应用文 件;
[0040] 代码覆盖率报告生成模块,适于根据所述代码覆盖率数据文件和所述应用文件生 成代码覆盖率报告。
[0041 ] 可选地,还包括:
[0042] 代码覆盖率数据文件生成模块,适于在对待测试的应用进行测试时,生成代码覆 盖率数据文件;
[0043] 配置文件调用模块,适于调用待测试的应用中的测试工具读取预设的配置文件;
[0044] 代码覆盖率数据文件写入模块,适于将所述代码覆盖率数据文件写入所述第一存 储目录中。
[0045] 可选地,还包括:
[0046] 代码覆盖率数据文件合并模块,适于在所述代码覆盖率数据文件为多个时,合并 多个代码覆盖率数据文件。
[0047]可选地,所述配置文件中还设置有第三存储目录,所述装置还包括:
[0048]代码覆盖率报告输出模块,适于将所述代码覆盖率报告输出至所述第三存储目 录。
[0049] 可选地,还包括:
[0050] 配置选项处理模块,适于调用待测试的应用中的测试工具,按照预设的配置选项 进行其他生成代码覆盖率报告处理。
[0051] 可选地,所述配置选项包括如下的一种或多种:
[0052] 代码覆盖率报告的格式,覆盖率数据文件合并后的第四存储目录;
[0053] 所述配置选项处理模块还适于:
[0054] 按照所述格式生成代码覆盖率报告;
[0055] 和/或,
[0056] 将合并后的覆盖率数据文件输出至所述第四存储目录;
[0057] 和/或,
[0058] 从所述第四存储目录中读取合并后的覆盖率数据文件。
[0059] 本发明实施例通过更改Jacoco等测试工具,打包Jacoco工具,将覆盖率报告生成 过程独立出来,通过配置文件读取必要资源的路径信息,直接导出代码覆盖率报告,避免了 在第三方工具中进行复杂的配置,从而有效简化测试流程,实现了整个测试流程的自动化, 适应于广泛的项目,为项目创建代码覆盖率报告的自动化实现提供了统一途径,可重用性 尚。
[0060] 本发明实施例对于Jacoco等测试工具中存在的可选配置项,由于这些配置项在自 动化的实现上基本是固定的,测试人员一般不太需要关注这些配置项,所以,可以Jacoco等 测试工具的相关函数中设置了默认路径,将其都封装在J acoco等测试工具中,从而省去这 些不必要的配置,简化了配置流程。
[0061] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0062] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0063]图1示出了现在一
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1