本申请涉及软件开发技术领域,公开一种用于生成代码覆盖率报告的方法,包括:在测试代码的过程中,获得用户的代码覆盖率报告请求;在代码覆盖率报告有效的情况下,反馈代码覆盖率报告;在代码覆盖率报告无效的情况下,生成代码覆盖率报告,并反馈代码覆盖率报告。用户可以在测试过程中根据需要实时查看到代码覆盖率报告,不需要等到整个测试结束后查看代码覆盖率报告。从而,可以及时判断测试是否充分,及时发现测试的弱点并增加测试用例等。该方法能够在测试过程中实时的查看代码覆盖率报告,提高了测试灵活性。本申请还公开一种用于生成代码覆盖率报告的装置及测试设备、存储介质。存储介质。存储介质。
【技术实现步骤摘要】
用于生成代码覆盖率报告的方法及装置、测试设备、存储介质
[0001]本申请涉及软件开发
,例如涉及一种用于生成代码覆盖率报告的方法及装置、测试设备、存储介质。
技术介绍
[0002]代码覆盖率(Code Coverage)是反映测试用例对被测程序覆盖程度的重要指标,也是衡量测试完整性的一个参考值。无论是单元测试、API(Appl ication Program Interface,应用程序接口)测试、还是功能性测试,最终都是调用了程序的代码。测试结束后,通过代码覆盖率数据,可以知道测试是否充分,测试的弱点在哪些方面,进而可以指导开发者或辅助测试者增加覆盖率的测试用例。
[0003]相关技术公开了一种代码覆盖率报告生成方法,包括:获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;读取clas s文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
[0004]在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
[0005]该技术虽然能够实现自动生成代码覆盖率报告,但是该方法需要在测试用例都执行完毕之后才生成最终的代码覆盖率报告,用户才可以根据最终的代码覆盖率报告进行代码及测试用例分析,不能够实时的查看代码的执行情况。因此,相关技术无法在测试过程中实时查看代码覆盖率报告,测试灵活性低。<br/>[0006]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
[0007]为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0008]本公开实施例提供了一种用于生成代码覆盖率报告的方法及装置、测试设备、存储介质,能够在测试过程中实时查看代码覆盖率报告,提高了测试灵活性。
[0009]在一些实施例中,用于生成代码覆盖率报告的方法应用于测试设备,该方法包括:在测试代码的过程中,获得用户的代码覆盖率报告请求;在代码覆盖率报告有效的情况下,反馈代码覆盖率报告;在代码覆盖率报告无效的情况下,生成代码覆盖率报告,并反馈代码覆盖率报告。
[0010]可选地,代码覆盖率报告有效的情况,包括:存在代码覆盖率报告且代码覆盖率报告未被标记为过期。
[0011]可选地,代码覆盖率报告无效的情况,包括:不存在代码覆盖率报告或代码覆盖率
报告被标记为过期。
[0012]可选地,生成代码覆盖率报告,包括:向全部服务器发送获取代码执行情况请求;接收全部服务器发送的代码执行情况;根据全部服务器发送的代码执行情况生成代码覆盖率报告。
[0013]可选地,根据全部服务器发送的代码执行情况生成代码覆盖率报告,包括:对全部服务器发送的代码执行情况进行合并,获得代码执行结果;根据代码执行结果和测试版本源码生成全量的代码覆盖率报告;根据代码执行结果、测试版本源码和上一版本源码生成增量的代码覆盖率报告;将全量的代码覆盖率报告和增量的代码覆盖率报告合并生成代码覆盖率报告。
[0014]可选地,在未获得用户的代码覆盖率报告请求的情况下,上述方法还包括:接收服务器发送的代码执行情况;其中,代码执行情况是由侦听工具在服务器侦听并在满足第一条件的情况下从对应服务器发送的;在满足第二条件的情况下,向剩余服务器发送获取代码执行情况请求;接收剩余服务器发送的代码执行情况;根据全部服务器发送的代码执行情况生成代码覆盖率报告,获得更新后的代码覆盖率报告;在不满足第二条件的情况下,将已存在的代码覆盖率报告作为更新后的代码覆盖率报告。
[0015]可选地,第一条件,包括:新增保存的代码执行情况的数据量大于或等于预设数据量;或,距上一次代码执行情况的发送时间的时长大于或等于第一预设时长。
[0016]可选地,第二条件,包括:不存在代码覆盖率报告;或,存在代码覆盖率报告且本次接收的代码执行情况与上一次接收的代码执行情况存在区别;或,存在代码覆盖率报告且本次代码执行情况的接收时间距上一次生成代码覆盖率报告的时间的时间差大于或等于第二预设时长。
[0017]可选地,在接收服务器发送的代码执行情况后,上述方法还包括:在存在代码覆盖率报告的情况下,将已存在的代码覆盖率报告标记为过期。
[0018]可选地,代码覆盖率报告中包括行覆盖率、类覆盖率、分支覆盖率、方法覆盖率、指令级覆盖率、圈复杂度及语句块覆盖率中的一种或多种的分析结果。
[0019]在一些实施例中,用于生成代码覆盖率报告的装置包括处理器和存储有程序指令的存储器,处理器被配置为在运行程序指令时,执行上述的用于生成代码覆盖率报告的方法。
[0020]在一些实施例中,测试设备包括测试设备本体;和,上述的用于生成代码覆盖率报告的装置,被安装于测试设备本体。
[0021]在一些实施例中,存储介质,存储有程序指令,程序指令在运行时,执行上述的用于生成代码覆盖率报告的方法。
[0022]本公开实施例提供的用于生成代码覆盖率报告的方法及装置、测试设备、存储介质,可以实现以下技术效果:
[0023]在测试代码的过程中,在获得用户的代码覆盖率报告请求的情况下,如果判断代码覆盖率报告有效,则立即反馈代码覆盖率报告。如果判断代码覆盖率报告无效,则生成代码覆盖率报告,并反馈代码覆盖率报告。这样,用户可以在测试过程中根据需要实时查看到代码覆盖率报告,不需要等到整个测试结束后查看代码覆盖率报告。从而,可以及时判断测试是否充分,及时发现测试的弱点并增加测试用例等。与相关技术相比,本公开实施例能够
在测试过程中实时的查看代码覆盖率报告,提高了测试灵活性。
[0024]以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
[0025]一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
[0026]图1是本公开实施例提供的一个应用场景的示意图;
[0027]图2是本公开实施例提供的另一个应用场景的示意图;
[0028]图3是本公开实施例提供的一个用于生成代码覆盖率报告的方法的示意图;
[0029]图4是本公开实施例提供的另一个用于生成代码覆盖率报告的方法的示意图;
[0030]图5是本公开实施例提供的另一个用于生成代码覆盖率报告的方法的示意图;
[0031]图6是本公开实施例提供的另一个用于生成代码覆盖率报告的方法的示意图;
[0032]图7是本公开实施例提供的另一个用于生成代码覆盖率本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种用于生成代码覆盖率报告的方法,应用于测试设备,其特征在于,包括:在测试代码的过程中,获得用户的代码覆盖率报告请求;在代码覆盖率报告有效的情况下,反馈所述代码覆盖率报告;在代码覆盖率报告无效的情况下,生成代码覆盖率报告,并反馈所述代码覆盖率报告。2.根据权利要求1所述的方法,其特征在于,所述代码覆盖率报告有效的情况,包括:存在代码覆盖率报告且代码覆盖率报告未被标记为过期。3.根据权利要求1所述的方法,其特征在于,所述代码覆盖率报告无效的情况,包括:不存在代码覆盖率报告或代码覆盖率报告被标记为过期。4.根据权利要求1所述的方法,其特征在于,所述生成代码覆盖率报告,包括:向全部服务器发送获取代码执行情况请求;接收所述全部服务器发送的代码执行情况;根据所述全部服务器发送的代码执行情况生成代码覆盖率报告。5.根据权利要求1至4任一项所述的方法,其特征在于,在未获得用户的代码覆盖率报告请求的情况下,所述方法还包括:接收服务器发送的代码执行情况;其中,所述代码执行情况是由侦听工具在服务器侦听并在满足第一条件的情况下从对应服务器发送的;在满足第二条件的情况下,向剩余服务器发送获取代码执行情况请求;接收剩余服务器发送的代码执行情况;根据全部服务器发送的代码执行情况生成代码覆盖率报告,获得更新后的代码覆盖率报告;在不满足所述第二条件的情况...
【专利技术属性】
技术研发人员:杨俊,
申请(专利权)人:青岛海尔科技有限公司海尔智家股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。