CN115495357A - 增量覆盖度报告的生成方法、生成装置和生成设备 - Google Patents
增量覆盖度报告的生成方法、生成装置和生成设备 Download PDFInfo
- Publication number
- CN115495357A CN115495357A CN202211156498.1A CN202211156498A CN115495357A CN 115495357 A CN115495357 A CN 115495357A CN 202211156498 A CN202211156498 A CN 202211156498A CN 115495357 A CN115495357 A CN 115495357A
- Authority
- CN
- China
- Prior art keywords
- code
- codes
- project
- coverage
- coverage report
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种增量覆盖度报告的生成方法、生成装置和生成设备。所述方法包括:获取项目不同版本代码;对比不同版本代码,得到项目代码差异文件,所述项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;通过执行jacoco插件进行单元测试得到整体覆盖度报告;根据所述项目代码差异文件中的差异代码和所述整体覆盖度报告生成增量覆盖度报告,所述增量覆盖度报告包括所述差异代码的代码作者信息。根据本申请实施例,测试覆盖度时只需要项目团队对变更后的代码编写测试代码,减少了因版本迭代开发的成本,进而提高了测试的效率。
Description
技术领域
本申请属于测试研发技术领域,尤其涉及一种增量覆盖度报告的生成方法、生成装置和生成设备。
背景技术
在项目开发的过程中,为了保障项目代码的质量,需要对项目代码进行充分的测试。
但随着项目的开发,代码量不断增加,在进行测试时,需要针对整体代码对测试代码进行整体修改,才能进行覆盖度的测试,不仅如此,每一次都需要执行所有测试案例才能进行测试的统计,会消耗大量的时间,从而导致测试效率的降低。
发明内容
本申请实施例提供一种增量覆盖度报告的生成方法、生成装置、生成设备及计算机存储介质,能够提高代码覆盖度的测试效率。
第一方面,本申请实施例提供一种增量覆盖度报告的生成方法,增量覆盖度报告的生成方法包括:
获取项目不同版本代码;
对比不同版本代码,得到项目代码差异文件,项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;
通过执行jacoco插件进行单元测试得到整体覆盖度报告;
根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,增量覆盖度报告包括差异代码的代码作者信息。
在一个可能实现的实施例中,项目不同版本代码包括原有项目代码、更改后项目代码和待测版本项目代码;对比不同版本代码,得到项目代码差异文件,包括:
对比原有项目代码和待测试版本代码,得到项目代码差异文件;或者,
对比更改后的项目代码和待测试版本代码,得到项目代码差异文件。
在一个可能实现的实施例中,执行jacoco插件进行单元测试得到整体覆盖度报告,包括:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
在一个可能实现的实施例中,根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,包括:
从整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
根据项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
在一个可能实现的实施例中,代码作者信息包括作者姓名、作者工号和作者联系方式中的至少一项。
在一个可能实现的实施例中,的增量覆盖度报告的生成方法,还包括:
按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
第二方面,本申请实施例提供了一种增量覆盖度报告的生成装置,装置包括:
获取模块,用于获取项目不同版本代码;
对比模块,用于对比不同版本代码,得到项目代码差异文件,项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;
整体覆盖度生成模块,用于通过执行jacoco插件进行单元测试得到整体覆盖度报告;
增量覆盖度生成模块,用于根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,增量覆盖度报告包括差异代码的代码作者信息。
在一个可能的实施例中,对比模块具体用于:
对比原有项目代码和待测试版本代码,得到项目代码差异文件;或者,
对比更改后的项目代码和待测试版本代码,得到项目代码差异文件。
在一个可能的实施例中,整体覆盖度生成模块具体用于:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
在一个可能的实施例中,增量覆盖度生成模块包括:
行代码覆盖单元,用于从所述整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
增量覆盖度单元,用于根据所述项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
在一个可能的实施例中,增量覆盖度报告的生成装置还包括:
发送模块,用于按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
第三方面,本申请实施例提供了一种增量覆盖度报告的生成设备,设备包括:
处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现上述任意一项的在增量覆盖度报告的生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序指令,计算机程序指令被处理器执行时实现上述任意一项的增量覆盖度报告的生成方法。
第五方面,本申请实施例提供了一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备能够执行上述任意一项所述的增量覆盖度报告的生成方法。
本申请实施例提供了一种增量覆盖报告度报告的生成方法、生成装置、电子设备、存储介质和计算机程序产品,获取项目的不同版本代码,对不同版本的代码进行对比得到项目代码差异文件,结合项目整体覆盖度报告生成增量覆盖度报告,根据项目代码差异可以针对变更的项目代码提供相应的覆盖度报告,测试覆盖度时只需要项目团队对变更后的代码编写测试代码,减少了因版本迭代开发的成本,进而提高了测试的效率。同时,通过不同版本代码进行对比得到的代码差异文件中包括改行项目代码作者信息,当项目团队需要对未覆盖的代码进行分析时,能够准确快速找到对应的负责人。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的增量覆盖度报告的生成方法的流程示意图;
图2是本申请另一个实施例提供的增量覆盖度报告的生成方法的流程示意图;
图3是本申请又一个实施例提供的增量覆盖度报告的生成装置的结构示意图;
图4是本申请再一个实施例提供的增量覆盖度报告的生成设备的硬件结构示意图。
具体实施方式
下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅意在解释本申请,而不是限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要说明的是,本申请实施例中对数据的获取、存储、使用和处理等,均符合国家法律法规的相关规定。
在项目开发的过程中,为了保障项目代码的质量,需要对项目代码进行充分的测试。目前比较普遍的做法是使用jacoco对项目的单元测试进行覆盖度统计,并在测试结束后生成覆盖度报告,项目组根据所生成的增量覆盖度报告对项目代码的质量进行估计。但随着项目的开发,代码量不断增加,针对整体代码需要对测试代码进行整体修改才能进行覆盖度的测试,所以会增加开发成本;不仅如此,每一次都需要执行所有测试案例才能进行单测覆盖度的统计,会消耗大量的时间,从而导致测试效率的降低;而且这种整体的测试无法获取代码作者信息,当代码需要进行修改时,无法准确快速找到对应的负责人。
为了解决现有技术问题,本申请实施例提供了一种增量覆盖度报告的生成方法、装置、设备及计算机存储介质。下面首先对本申请实施例所提供的增量覆盖度报告的生成方法进行介绍。
图1示出了本申请一个实施例提供的增量覆盖度报告的生成方法的流程示意图。如图1所示,步骤如下:
S101、获取项目不同版本代码。
S102、对比不同版本代码,得到项目代码差异文件,项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息。
S103、通过执行jacoco插件进行单元测试得到整体覆盖度报告。
S104、根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,增量覆盖度报告包括差异代码的代码作者信息。
本申请实施例提供了一种增量覆盖报告度报告的生成方法,对不同版本的代码进行对比得到项目代码差异文件,结合项目整体覆盖度报告生成增量覆盖度报告,测试覆盖度时只需要项目团队对变更后的代码编写测试代码,减少了因版本迭代开发的成本,进而提高了测试的效率。同时,通过不同版本代码进行对比得到的代码差异文件中包括改行项目代码作者信息,当项目团队需要对未覆盖的代码进行分析时,能够准确快速找到对应的负责人。
下面介绍上述各个步骤的具体实现方式。
在S101中,获取项目不同版本代码可以包括获取原有项目代码、获取更改后项目代码和获取待测版本项目代码。
在一些实施例中,原有项目代码和更改后的项目代码可以从项目代码版本库中获取,也可以从项目代码暂存区中获取。待测版本项目代码可以从项目代码工作区中获取,也可以从项目代码版本库中获取,还可以从项目代码暂存区中获取。
在S102中,不同版本的代码是git管理的代码,git管理的代码是项目完整的代码信息。在git中可以创建分支,通过git diff对不同分支进行对比,得到差异文件。
在一些实施例中,对比项目不同版本代码可以是通过git中的git diff命令比较项目不同版本代码的差异,进而形成项目代码差异文件。git对于每个文件都有完整的长期的文件修改历史,文件修改可以包括文件创建,内容修改以及重命名等等,修改历史可以包括作者、日期、以及修改意图;采用git diff命令比较被git管理的项目代码在项目代码工作区、项目代码暂存区和项目代码版本库之间的差异。
作为一个示例,git diff命令默认查看的是项目代码工作区和项目代码暂存区之间代码的差异,还可以查看项目代码工作区和项目代码版本库之间的代码差异,还可以查看项目代码暂存区和项目代码版本库之间的代码差异,还可以查看项目代码不同版本库之间的项目代码。项目代码差异文件中包括不同版本代码的差异代码,以及差异代码的代码作者信息;差异代码可以是增加的项目代码,还可以是修改的项目代码。
在一些实施方式中,上述S102可以包括:
对比所述原有项目代码和所述待测试版本代码,得到项目代码差异文件;或者,
对比所述更改后的项目代码和所述待测试版本代码,得到项目代码差异文件。
这样,通过对比原有项目代码和待测试版本代码或者对比更改后的项目代码和待测试版本代码,可以得到项目中不同版本代码的代码差异。
在一些实施方式中,代码作者信息可以包括作者姓名、作者工号和作者联系方式中的至少一项。
这样,当项目差异代码产生时,可以根据差异代码的代码作者信息找到更改代码部分对应的负责人,对于每一个修改,都可以定位到代码作者,为寻找代码负责人提供依据。代码负责人可以及时对代码进行修改,提高代码质量。
在一些实施例中,在S103中,可以通过jacoco修改class文件的字节码来进行代码覆盖度统计的,jacoco的探针实际是一个布尔值,当代码执行到探针位置时,将其置为true,该探针前面的代码会被认为执行过,然后对该部分代码对应的html文件中的css样式进行染色(比如:红色表示未覆盖,绿色表示已覆盖,黄色表示部分覆盖),形成最终的代码覆盖度报告。
在一些实施方式中,上述S103具体可以包括:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
这里,项目可以是Ant项目,还可以是Maven项目;配置文件可以是pom配置文件。
作为一种示例,调用项目配置文件中的jacoco插件,执行mvn test命令,可在单元测试结束后获取整体覆盖度报告。
这样,通过jacoco插件生成的整体覆盖度报告中的html页面,可以清晰的看出项目代码的覆盖情况,进而通过覆盖情况来审视项目代码质量的高低。
在一些实施例中,在S104中,结合项目代码差异文件中的差异代码和整体覆盖度报告生成增,量覆盖度报告,增量覆盖度报告中包括差异代码的代码作者信息。
这样,当项目组对项目代码进行测试时,可以根据增量覆盖度报告和代码作者信息对代码进行检查优化,为项目组提升代码质量提供了重要依据。
在一些实施方式中,上述S104具体可以包括:
从整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
根据项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
作为一个示例,html文件中通过代码染色情况(红色表示未覆盖,绿色表示已覆盖,黄色表示部分覆盖)展示了哪些代码被执行以及哪些代码没有被执行,进而获取每行代码的覆盖情况;结合项目代码差异文件中的差异代码和整体覆盖度报告可以生成增量覆盖度报告。
这样,根据项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告,项目组无需做额外的工作就能够得到增量覆盖度报告,只针对变更代码编写测试代码进行测试提高了单元测试的效率。
作为本申请的另一种实现方式,本申请实施例还提供了增量覆盖度报告的生成方法的另一种实现方式,如图2所示,具体参见以下实施例。
请参见图2,本申请实施例提供的增量覆盖度报告的生成方法的另一种实现方式包括以下步骤:
S201:获取项目不同版本代码。
S202:对比不同版本代码,得到项目代码差异文件,项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息。
S203:通过执行jacoco插件进行单元测试得到整体覆盖度报告;
S204:根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,增量覆盖度报告包括差异代码的代码作者信息。
S205:按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
具体的,预设时间间隔可以根据针对向服务器定期发送增量覆盖度报告的输入向服务器定期发送增量覆盖度报告;服务器将收集的增量覆盖度报告进行汇总处理生成所有项目增量覆盖度的整体视图,将所有项目的覆盖情况进行整体展示。
S201至S204与上述实施例中S101至S104相同,为了简要起见,在此不再详细描述。
这样,对不同版本的代码进行对比得到项目代码差异文件,结合项目整体覆盖度报告生成增量覆盖度报告,将所有项目增量覆盖度进行汇总提供所有项目覆盖度信息的整体视图,方便对所有项目测试进度进行整体把控。
基于上述实施例提供的增量覆盖度报告的生成方法,相应地,本申请实施例还提供了一种增量覆盖度报告的生成装置300,请参见以下实施例。
首先参见图3,本申请实施例提供的增量覆盖度报告的生成装置300包括以下模块:
获取模块310,用于获取项目不同版本代码;
对比模块320,用于对比不同版本代码,得到项目代码差异文件,项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;
整体覆盖度生成模块330,用于通过执行jacoco插件进行单元测试得到整体覆盖度报告;
增量覆盖度生成模块340,用于根据项目代码差异文件中的差异代码和整体覆盖度报告生成增量覆盖度报告,增量覆盖度报告包括差异代码的代码作者信息。
具体的,在一个实施例中,本装置可在jenkins上直接使用,通过在项目原有流水线上增加增量覆盖度模块,本申请实施例提供jenkins流水线构建脚本,每次项目执行流水线都可以获取增量覆盖度报告。
这样,使用本申请实施例提供的增量覆盖度报告的生成装置,对不同版本的代码进行对比得到项目代码差异文件,结合项目整体覆盖度报告生成增量覆盖度报告,测试覆盖度时只需要项目团队对变更后的代码编写测试代码,减少了因版本迭代开发的成本,使用本申请实施例提供的增量覆盖度报告的生成装置无需每次执行所有测试用例,节省单元测试的时间,进而提高了测试的效率,而且本申请实施例提供jenkins流水线构建脚本,每次项目执行流水线都可以获取增量覆盖度报告,简化了获取增量报告流程。同时,通过不同版本代码进行对比得到的代码差异文件中包括改行项目代码作者信息,当项目团队需要对未覆盖的代码进行分析时,能够准确快速找到对应的负责人。
基于此,在一些实施方式中,对比模块320具体用于:
对比原有项目代码和待测试版本代码,得到项目代码差异文件;或者,
对比更改后的项目代码和待测试版本代码,得到项目代码差异文件。
在一些实施方式中,整体覆盖度生成模块330具体用于:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
在一些实施方式中,增量覆盖度生成模块340包括:
行代码覆盖单元,用于从所述整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
增量覆盖度单元,用于根据所述项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
在一些实施方式中,增量覆盖度报告的生成装置300还包括:
发送模块,用于按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
本申请实施例提供的增量覆盖报告度报告的生成装置的各个模块,可以实现图1和图2提供增量覆盖报告度报告的生成方法的各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
图4示出了本申请实施例提供的增量覆盖度报告的生成设备的硬件结构示意图。
在增量覆盖度报告的生成设备可以包括处理器401以及存储有计算机程序指令的存储器402。
具体地,上述处理器401可以包括中央处理器(Central Processing Unit,CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器402可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器402可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器402可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器402可在综合网关容灾设备的内部或外部。在特定实施例中,存储器402是非易失性固态存储器。
在特定实施例中,存储器402包括只读存储器(Read Only Memory,ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,PROM)、可擦除PROM(Erasable Programmable Read Only Memory,EPROM)、电可擦除PROM(Electrically Erasable Programmable Read-Only Memory,EEPROM)、电可改写ROM(Electrically Alterable Read Only Memory,EAROM)或闪存或者两个或更多个以上这些的组合。
处理器401通过读取并执行存储器402中存储的计算机程序指令,以实现上述实施例中的任意一种增量覆盖度报告的生成方法。
在一个示例中,增量覆盖度报告的生成设备还可包括通信接口403和总线410。其中,如图4所示,处理器401、存储器402、通信接口403通过总线410连接并完成相互间的通信。
通信接口403,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线410包括硬件、软件或两者,将增量覆盖度报告的生成设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(Accelerated Graphics Port,AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,EISA)总线、前端总线(Front Side Bus,FSB)、超传输(Hyper Transport,HT)互连、工业标准架构(Industry Standard Architecture,ISA)总线、无限带宽互连、低引脚数(LinearPredictive Coding,LPC)总线、存储器总线、微信道架构(MicroChannel Architecture,MCA)总线、外围组件互连(Peripheral Component Interconnect,PCI)总线、PCI-Express(Peripheral Component Interconnect-X,PCI-X)总线、串行高级技术附件(SerialAdvanced Technology Attachment,SATA)总线、视频电子标准协会局部(VESA Local Bus,VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线410可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该增量覆盖度报告的生成设备基于项目的不同版本代码执行本申请实施例中的增量覆盖报告度报告的生成方法,从而实现结合图1和图2描述的增量覆盖报告度报告的生成方法。
另外,结合上述实施例中的增量覆盖报告度报告的生成方法,本申请实施例可提供一种计算机存储介质来实现。该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种增量覆盖报告度报告的生成方法。
本申请还提供了一种计算机程序产品,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备执行实现上述任意一项增量覆盖报告度报告的生成方法实施例的各个过程。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除只读存储器(Erasable ReadOnly Memory,EROM)、软盘、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (14)
1.一种增量覆盖度报告的生成方法,其特征在于,包括:
获取项目不同版本代码;
对比不同版本代码,得到项目代码差异文件,所述项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;
通过执行jacoco插件进行单元测试得到整体覆盖度报告;
根据所述项目代码差异文件中的差异代码和所述整体覆盖度报告生成增量覆盖度报告,所述增量覆盖度报告包括所述差异代码的代码作者信息。
2.根据权利要求1所述的增量覆盖度报告的生成方法,其特征在于,所述项目不同版本代码包括原有项目代码、更改后项目代码和待测版本项目代码;所述对比不同版本代码,得到项目代码差异文件,包括:
对比所述原有项目代码和所述待测试版本代码,得到项目代码差异文件;或者,
对比所述更改后的项目代码和所述待测试版本代码,得到项目代码差异文件。
3.根据权利要求1所述的增量覆盖度报告的生成方法,其特征在于,所述执行jacoco插件进行单元测试得到整体覆盖度报告,包括:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
4.根据权利要求1所述的增量覆盖度报告的生成方法,其特征在于,所述根据所述项目代码差异文件中的差异代码和所述整体覆盖度报告生成增量覆盖度报告,包括:
从所述整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
根据所述项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
5.根据权利要求1所述的增量覆盖度报告的生成方法,其特征在于,所述代码作者信息包括作者姓名、作者工号和作者联系方式中的至少一项。
6.根据权利要求1所述的增量覆盖度报告的生成方法,其特征在于,所述的增量覆盖度报告的生成方法,还包括:
按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
7.一种增量覆盖度报告的生成装置,其特征在于,所述生成装置包括:
获取模块,用于获取项目不同版本代码;
对比模块,用于对比不同版本代码,得到项目代码差异文件,所述项目代码差异文件包括不同版本代码的差异代码,以及差异代码的代码作者信息;
整体覆盖度生成模块,用于通过执行jacoco插件进行单元测试得到整体覆盖度报告;
增量覆盖度生成模块,用于根据所述项目代码差异文件中的差异代码和所述整体覆盖度报告生成增量覆盖度报告,所述增量覆盖度报告包括所述差异代码的代码作者信息。
8.根据权利要求7所述的增量覆盖度报告的生成装置,其特征在于,所述对比模块具体用于:
对比所述原有项目代码和所述待测试版本代码,得到项目代码差异文件;或者,
对比所述更改后的项目代码和所述待测试版本代码,得到项目代码差异文件。
9.根据权利要求7所述的增量覆盖度报告的生成装置,其特征在于,所述整体覆盖度生成模块具体用于:
从项目的配置文件中调用并执行jacoco插件进行单元测试,得到整体覆盖度报告。
10.根据权利要求7所述的增量覆盖度报告的生成装置,其特征在于,所述增量覆盖度生成模块包括:
行代码覆盖单元,用于从所述整体覆盖度报告中的html文件,获取每行代码的覆盖情况;
增量覆盖度单元,用于根据所述项目代码差异文件中的差异代码获取增量代码的覆盖情况,生成增量覆盖度报告。
11.根据权利要求7所述的增量覆盖度报告的生成装置,其特征在于,所述装置还包括:
发送模块,用于按照预设时间间隔,向服务器定期发送增量覆盖度报告,以用于服务器进行汇总处理并生成所有项目增量覆盖度的整体视图。
12.一种增量覆盖度报告的生成设备,其特征在于,所述设备包括:处理器以及存储有计算机程序指令的存储器;
所述处理器执行所述计算机程序指令时实现如权利要求1-6任意一项所述的在增量覆盖度报告的生成方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-6任意一项所述的增量覆盖度报告的生成方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-6任意一项所述的增量覆盖度报告的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156498.1A CN115495357A (zh) | 2022-09-22 | 2022-09-22 | 增量覆盖度报告的生成方法、生成装置和生成设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211156498.1A CN115495357A (zh) | 2022-09-22 | 2022-09-22 | 增量覆盖度报告的生成方法、生成装置和生成设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115495357A true CN115495357A (zh) | 2022-12-20 |
Family
ID=84470964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211156498.1A Pending CN115495357A (zh) | 2022-09-22 | 2022-09-22 | 增量覆盖度报告的生成方法、生成装置和生成设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115495357A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112398A (zh) * | 2023-07-11 | 2023-11-24 | 贝壳找房(北京)科技有限公司 | 增量代码覆盖率检测方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-22 CN CN202211156498.1A patent/CN115495357A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112398A (zh) * | 2023-07-11 | 2023-11-24 | 贝壳找房(北京)科技有限公司 | 增量代码覆盖率检测方法、装置、电子设备及存储介质 |
CN117112398B (zh) * | 2023-07-11 | 2024-04-16 | 贝壳找房(北京)科技有限公司 | 增量代码覆盖率检测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11157390B2 (en) | Automatic software defect repair | |
CN102968371B (zh) | 测试java api单元组件的方法及装置 | |
CN115495357A (zh) | 增量覆盖度报告的生成方法、生成装置和生成设备 | |
CN105468508A (zh) | 代码检测方法及装置 | |
CN114840191A (zh) | 软件代码自动生成方法、装置、设备及可读存储介质 | |
CN115269439A (zh) | 数据处理系统的测试方法、装置、设备和可读存储介质 | |
CN111611154B (zh) | 一种回归测试的方法、装置和设备 | |
CN110580220B (zh) | 测量代码段执行时间的方法及终端设备 | |
CN111221727A (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
CN115373929A (zh) | 测试方法、装置、设备、可读存储介质及程序产品 | |
CN115034165A (zh) | 一种芯片仿真验证方法、系统、设备以及存储介质 | |
CN114020645A (zh) | 测试方法、装置、设备、可读存储介质及计算机程序产品 | |
US7434128B2 (en) | Systems and methods for identifying system links | |
CN111752823A (zh) | 一种车载电源应用软件的测试方法、装置及设备 | |
CN111124904A (zh) | 一种应用软件的回归测试方法及装置 | |
CN112580282B (zh) | 用于集成电路设计验证的方法、装置、设备以及存储介质 | |
CN112464608B (zh) | 一种pcb中自动化添加地平面测点的方法、系统及介质 | |
CN117112398B (zh) | 增量代码覆盖率检测方法、装置、电子设备及存储介质 | |
CN117520147A (zh) | 代码覆盖率统计方法、装置、计算机设备和存储介质 | |
CN112732322A (zh) | 数据验证方法、装置、电子设备及计算机存储介质 | |
CN114676058A (zh) | 一种覆盖率确定方法、装置、电子设备及存储介质 | |
Niu et al. | Understanding the Similarity of Log Revision Behaviors in Open Source Software | |
CN117992350A (zh) | 代码测试覆盖率的监测方法、装置及电子设备 | |
Sharma et al. | Fuzzing API Error Handling Behaviors using Coverage Guided Fault Injection | |
CN115422085A (zh) | 单元测试方法、装置、设备、存储介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |