CN116737577A - 一种单元测试覆盖率的分析方法、装置、设备及存储介质 - Google Patents
一种单元测试覆盖率的分析方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116737577A CN116737577A CN202310742255.4A CN202310742255A CN116737577A CN 116737577 A CN116737577 A CN 116737577A CN 202310742255 A CN202310742255 A CN 202310742255A CN 116737577 A CN116737577 A CN 116737577A
- Authority
- CN
- China
- Prior art keywords
- component
- unit test
- test coverage
- target
- scanned
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 218
- 238000004458 analytical method Methods 0.000 title claims abstract description 113
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000000034 method Methods 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000007619 statistical method Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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
-
- 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/3692—Test management for test results 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
本申请公开了一种单元测试覆盖率的分析方法、装置、设备及存储介质,涉及计算机技术领域,包括:通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;利用覆盖率统计组件基于目标配置选项对待扫描组件进行扫描操作,以确定待扫描组件的单元测试覆盖率;通过结果分析组件对待扫描组件的预设组件信息文件进行解析,以确定待扫描组件的目标组件信息;利用报告输出组件对目标配置选项、单元测试覆盖率以及目标组件信息进行处理,以基于文件类型输出相应的单元测试覆盖率分析报告。这样一来,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种单元测试覆盖率的分析方法、装置、设备及存储介质。
背景技术
Flutter是一个由谷歌开发的开源移动应用软件开发工具包,Dart是一种由谷歌主导开发的适用于万维网的开发源代码编程语言,而YAML是一个可读性高,用来表达资料序列化的格式,YAML的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等资料形态。Flutter项目以及Dart项目都是基于.yaml文件管理组件的信息,其中包括组件名称、组件描述、版本号、作者、环境、依赖关系等信息。目前存在很多覆盖率统计工具,但是缺少一种可以对一个Flutter项目或Dart项目中所有组件的单元测试覆盖率进行全方位统计分析的方案。
发明内容
有鉴于此,本发明的目的在于提供一种单元测试覆盖率的分析方法、装置、设备及存储介质,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率。其具体方案如下:
第一方面,本申请公开了一种单元测试覆盖率的分析方法,包括:
通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;
利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率;
通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息;
利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
可选的,所述通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,包括:
通过配置组件配置命令行中的format字段,以确定待输出的单元测试分析报告的文件类型为html格式或txt格式;
通过所述配置组件配置目标配置字段,以确定目标配置选项。
可选的,所述通过所述配置组件配置目标配置字段,以确定目标配置选项,包括:
通过所述配置组件配置所述命令行中的ignore packages字段,以确定不进行单元测试覆盖率统计的组件;
通过所述配置组件配置所述命令行中的count字段,以确定目标榜单中进行展示的组件数量;所述目标榜单为进行单元测试覆盖率排名展示的榜单;
通过所述配置组件配置所述命令行中的open字段,以确定所述单元测试覆盖率分析报告的呈现形式;
通过所述配置组件配置所述命令行中的print字段,以确定所述单元测试覆盖率分析报告的打印形式;
通过所述配置组件配置所述命令行令中的文件路径字段,以确定所述命令行执行的路径。
可选的,所述单元测试覆盖率的分析方法,还可以包括:
基于所述目标组件信息、所述组件数量以及所述单元测试覆盖率生成所述目标榜单,以基于所述目标榜单对所述单元测试覆盖率的排名进行展示。
可选的,所述利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,包括:
利用覆盖率统计组件基于所述目标配置选项对待扫描组件对待扫描组件进行扫描,并执行测试报告命令,以生成覆盖率统计文件;
对所述覆盖率统计文件进行解析,以确定所述待扫描组件的单元测试覆盖率。
可选的,所述通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,包括:
通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的组件名称、作者信息、组件版本信息以及组件功能信息。
可选的,所述利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告,包括:
利用报告输出组件基于所述文件类型生成单元测试覆盖率分析报告,并将所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息写入所述单元测试覆盖率分析报告,并输出所述单元测试覆盖率分析报告。
第二方面,本申请公开了一种单元测试覆盖率的分析装置,包括:
数据确定模块,用于通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;
文件生成模块,用于利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率;
信息确定模块,用于通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息;
报告生成模块,用于利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如前述的单元测试覆盖率的分析方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如前述的单元测试覆盖率的分析方法。
本申请中,首先通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率,然后通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,最后利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。由此可见,通过本申请的单元测试覆盖率的分析方法,可以在接收到测试命令后对测试命令进行解析,以确定输出的分析报告的类型以及配置选项,并基于所述配置选项对待扫描组件进行扫描,以确定相应的单元测试覆盖率,最后对所述待扫描组件的预设组件信息文件进行解析,以确定相应的组件信息,最后将目标配置选项、单元测试覆盖率以及目标组件信息写入生成的分析报告并输出。这样一来,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种单元测试覆盖率的分析方法流程图;
图2为本申请提供的一种单元测试覆盖率的分析方法时序图;
图3为本申请提供的一种单元测试覆盖率分析报告示意图;
图4为本申请提供的一种组件文件维度单元测试覆盖率分析报告示意图;
图5为本申请提供的一种组件代码维度单元测试覆盖率分析报告示意图;
图6为本申请提供的一种单元测试覆盖率的分析装置结构示意图;
图7为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中已经存在很多覆盖率统计工具,但是缺少一种可以对一个Flutter项目或Dart项目中所有组件的单元测试覆盖率进行全方位统计分析的方案。
为了解决上述技术问题,本发明的目的在于提供一种单元测试覆盖率的分析方法、装置、设备及存储介质,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率。
参见图1所示,本发明实施例公开了一种单元测试覆盖率的分析方法,包括:
步骤S11、通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型。
本实施例中,通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,包括:通过配置组件配置命令行中的format字段,以确定待输出的单元测试分析报告的文件类型为html格式或txt格式;通过所述配置组件配置目标配置字段,以确定目标配置选项。也即,如果想要通过本申请的方法实现Flutter单元测试覆盖率的统计分析,需要先通过配置组件,也即通过命令行配置模块进行命令行的参数配置,例如报告文件的输出格式、用于对单元测试覆盖率排名展示的榜单的展示数量、指定要忽略的组件、报告文件的呈现形式、打印形式、以及命令行的执行路径,其中,可以通过配置组件,也即通过命令行配置模块配置命令行中的format字段,以确定待输出的单元测试分析报告的文件类型为html格式或txt格式。
需要进行说明的是,通过所述配置组件配置目标配置字段,以确定目标配置选项,包括:通过所述配置组件配置所述命令行中的ignore packages字段,以确定不进行单元测试覆盖率统计的组件;通过所述配置组件配置所述命令行中的count字段,以确定目标榜单中进行展示的组件数量;所述目标榜单为进行单元测试覆盖率排名展示的榜单;通过所述配置组件配置所述命令行中的open字段,以确定所述单元测试覆盖率分析报告的呈现形式;通过所述配置组件配置所述命令行中的print字段,以确定所述单元测试覆盖率分析报告的打印形式;通过所述配置组件配置所述命令行令中的文件路径字段,以确定所述命令行执行的路径。也即,可以通过配置组件,也即通过命令行配置模块配置命令行中的ignorepackages字段,以指定要忽略的组件,这些组件将不会统计单元测试覆盖率,并不会在最终输出的单元测试分析报告中展示。可以通过命令行配置模块配置命令行中的count字段,以确定目标榜单中进行展示的组件数量。可以过命令行配置模块配置命令行中的open字段,以确定单元测试覆盖率分析报告的呈现形式,例如以网页形式呈现单元测试覆盖率分析报告。可以过命令行配置模块配置命令行中的print字段,以确定单元测试覆盖率分析报告的打印形式为以文本方式进行打印。可以过命令行配置模块配置命令行中的文件路径字段,以便命令行通过件路径字段执行。
步骤S12、利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率。
本实施例中,利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,包括:利用覆盖率统计组件基于所述目标配置选项对待扫描组件对待扫描组件进行扫描,并执行测试报告命令,以生成覆盖率统计文件;对所述覆盖率统计文件进行解析,以确定所述待扫描组件的单元测试覆盖率。也即,需要通过覆盖率统计组件,也即覆盖率统计模块扫描项目下所有plugin和package组件,并为每个组件执行单元测试覆盖率统计命令:flutter test–coverage。所述单元测试覆盖率统计命令执行成功后会生成lcov.info文件,通过对lcov.info文件进行文本解析,并通过LH统计代码覆盖行数,通过LF统计代码总行数,取LH与LF的比值即可计算出覆盖率,其中LH为分子,LH为分母。需要进行说明的是,LH为被测试覆盖的行数量,LF为可被执行的行数量。
步骤S13、通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息。
本实施例中,通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,包括:通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的组件名称、作者信息、组件版本信息以及组件功能信息。也即,在通过覆盖率统计组件扫描项目下所有组件,生成lcov.info文件后,可以通过结果分析组件,也即结果分析模块通过genhtml-o命令生成与所述lcov.info文件相应的html报告,并通过对flutter test-coverage命令行执行结果的正则匹配分析,可以统计出单元测试用例的通过率,同时记录单元测试报告输出过程的日志和执行耗时,最后通过解析每个被扫描组件在生成时产生的pubspec.yaml文件,解析出组件路径、组件名称、组件作者、组件描述及组件版本等信息。
需要进行说明的是,本申请所述单元测试覆盖率的分析方法,还包括:基于所述目标组件信息、所述组件数量以及所述单元测试覆盖率生成所述目标榜单,以基于所述目标榜单对所述单元测试覆盖率的排名进行展示。也即,在确定了组件名称、组件作者,以及单元测试覆盖率后,可以基于上述三种数据生成目标榜单,也即覆盖率的排名榜单,并且生成的榜单中有两种展示榜单,一种是用于展示单元测试覆盖率排名由低到高的黑榜,一种是用于展示单元测试覆盖率排名由高到低的红榜。
步骤S14、利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
本实施例中,所述利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告,包括:利用报告输出组件基于所述文件类型生成单元测试覆盖率分析报告,并将所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息写入所述单元测试覆盖率分析报告,并输出所述单元测试覆盖率分析报告。也即,在确定了组件名称、组件作者、组件描述及组件版本、测试通过率、日志、单元测试覆盖率、组件报告、测试耗时、组件描述后,可以将上述信息通过确定的文件类型写入单元测试覆盖率分析报告。并且,需要进行说明的是,可以通过dart将前述所有步骤的流程编译为一个可执行文件。
由此可见,本实施例中首先通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率,然后通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,最后利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。由此可见,通过本申请的单元测试覆盖率的分析方法,可以在接收到测试命令后对测试命令进行解析,以确定输出的分析报告的类型以及配置选项,并基于所述配置选项对待扫描组件进行扫描,以确定相应的单元测试覆盖率,最后对所述待扫描组件的预设组件信息文件进行解析,以确定相应的组件信息,最后将目标配置选项、单元测试覆盖率以及目标组件信息写入生成的分析报告并输出。这样一来,一方面,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率;另一方面,可以生成用于展示单元测试覆盖率排名的组件榜单,可以通过榜单以及报告对单元测试覆盖率的情况进行直观展示。
参见图2所示,本申请公开了一种单元测试覆盖率的分析方法,包括:
本实施例中,如果想要通过进行Flutter单元测试覆盖率的统计分析,需要先通过命令行配置模块进行命令行的参数配置,配置报告文件的输出格式、用于对单元测试覆盖率排名展示的榜单的展示数量、指定要忽略的组件、报告文件的呈现形式、以及命令行的执行路径,例如当命令行配置如下所示时:unit.exe--format=html--ignore-packages=app_base,flutter_nim--count=10open/user/project,则解析上述命令行可以确定最终输出的单元测试覆盖率报告以网页形式出现,不计入单元测试覆盖率的组件为app_base以及flutter_nim,生成的榜单中展示的组件数量为红榜黑榜各10个,指定执行路径为/user/project。需要进行说明的是,当--format=txt时,可以确定最终输出的单元测试覆盖率报告以文本的形式呈现。配置完成后,通过覆盖率统计模块扫描除配置时确定不进行单元测试覆盖率统计的组件外的所有plugin和package组件,并为每个组件执行单元测试覆盖率统计命令:flutter test–coverage。所述单元测试覆盖率统计命令执行成功后会生成lcov.info文件,以确定每个组件相应的单元测试覆盖率,并通过结果分析模块基于genhtml-o命令生成与所述lcov.info文件相应的html报告,并通过对flutter test-coverage命令行执行结果的正则匹配分析,可以统计出单元测试用例的通过率,同时记录单元测试报告输出过程的日志和执行耗时,最后通过解析每个被扫描组件在生成时产生的pubspec.yaml文件,解析出组件路径、组件名称、组件作者、组件描述及组件版本等信息。并且在确定了组件名称、组件作者、组件描述及组件版本、测试通过率、日志、单元测试覆盖率、组件报告、测试耗时、组件描述后,可以将上述信息通过确定的文件类型写入单元测试覆盖率分析报告。且生成的html报告如图3所示,并且通过点击每个组件的报告可以查询该组件如图4所示的文件维度单元测试覆盖率分析报告,可以通过点击了解组件中每个运行文件的单元测试覆盖率,以及如图5所示的组件代码维度单元测试覆盖率分析报告,可以通过点击了解代码行的单元测试覆盖率。
参见图6所示,本发明实施例公开了一种单元测试覆盖率的分析装置,包括:
数据确定模块11,用于通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;
文件生成模块12,用于利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率;
信息确定模块13,用于通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息;
报告生成模块14,用于利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
由此可见,本实施例中首先通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率,然后通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,最后利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。由此可见,通过本申请的单元测试覆盖率的分析方法,可以在接收到测试命令后对测试命令进行解析,以确定输出的分析报告的类型以及配置选项,并基于所述配置选项对待扫描组件进行扫描,以确定相应的单元测试覆盖率,最后对所述待扫描组件的预设组件信息文件进行解析,以确定相应的组件信息,最后将目标配置选项、单元测试覆盖率以及目标组件信息写入生成的分析报告并输出。这样一来,一方面,可以对一个项目中所有组件的单元测试覆盖率进行统计,并生成相应的报告,有效提高了测试编写效率;另一方面,可以生成用于展示单元测试覆盖率排名的组件榜单,可以通过榜单以及报告对单元测试覆盖率的情况进行直观展示。
在一些实施例中,所述数据确定模块11,具体可以包括:
第一命令解析子模块,用于通过配置组件配置命令行中的format字段,以确定待输出的单元测试分析报告的文件类型为html格式或txt格式;
第二命令解析子模块,用于通过所述配置组件配置目标配置字段,以确定目标配置选项。
在一些实施例中,所述第二命令解析子模块,具体可以包括:
第一字段解析单元,用于通过所述配置组件配置所述命令行中的ignorepackages字段,以确定不进行单元测试覆盖率统计的组件;
第二字段解析单元,用于通过所述配置组件配置所述命令行中的count字段,以确定目标榜单中进行展示的组件数量;所述目标榜单为进行单元测试覆盖率排名展示的榜单;
第三字段解析单元,用于通过所述配置组件配置所述命令行中的open字段,以确定所述单元测试覆盖率分析报告的呈现形式;
第四字段解析单元,用于通过所述配置组件配置所述命令行中的print字段,以确定所述单元测试覆盖率分析报告的打印形式;
第五字段解析单元,用于通过所述配置组件配置所述命令行令中的文件路径字段,以确定所述命令行执行的路径。
在一些实施例中,所述单元测试覆盖率的分析装置,还可以包括:
榜单生成单元,用于基于所述目标组件信息、所述组件数量以及所述单元测试覆盖率生成所述目标榜单,以基于所述目标榜单对所述单元测试覆盖率的排名进行展示。
在一些实施例中,所述文件生成模块12,具体可以包括:
文件生成单元,用于利用覆盖率统计组件基于所述目标配置选项对待扫描组件对待扫描组件进行扫描,并执行测试报告命令,以生成覆盖率统计文件;
数据确定模块,用于对所述覆盖率统计文件进行解析,以确定所述待扫描组件的单元测试覆盖率。
在一些实施例中,所述信息确定模块13,具体可以包括:
信息确定单元,用于通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的组件名称、作者信息、组件版本信息以及组件功能信息。
在一些实施例中,所述报告生成模块14,具体可以包括:
报告生成单元,用于利用报告输出组件基于所述文件类型生成单元测试覆盖率分析报告,并将所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息写入所述单元测试覆盖率分析报告,并输出所述单元测试覆盖率分析报告。
进一步的,本申请实施例还公开了一种电子设备,图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的单元测试覆盖率的分析方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的单元测试覆盖率的分析方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的单元测试覆盖率的分析方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种单元测试覆盖率的分析方法,其特征在于,包括:
通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;
利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率;
通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息;
利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
2.根据权利要求1所述的单元测试覆盖率的分析方法,其特征在于,所述通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型,包括:
通过配置组件配置命令行中的format字段,以确定待输出的单元测试分析报告的文件类型为html格式或txt格式;
通过所述配置组件配置目标配置字段,以确定目标配置选项。
3.根据权利要求2所述的单元测试覆盖率的分析方法,其特征在于,所述通过所述配置组件配置目标配置字段,以确定目标配置选项,包括:
通过所述配置组件配置所述命令行中的ignore packages字段,以确定不进行单元测试覆盖率统计的组件;
通过所述配置组件配置所述命令行中的count字段,以确定目标榜单中进行展示的组件数量;所述目标榜单为进行单元测试覆盖率排名展示的榜单;
通过所述配置组件配置所述命令行中的open字段,以确定所述单元测试覆盖率分析报告的呈现形式;
通过所述配置组件配置所述命令行中的print字段,以确定所述单元测试覆盖率分析报告的打印形式;
通过所述配置组件配置所述命令行令中的文件路径字段,以确定所述命令行执行的路径。
4.根据权利要求3所述的单元测试覆盖率的分析方法,其特征在于,还包括:
基于所述目标组件信息、所述组件数量以及所述单元测试覆盖率生成所述目标榜单,以基于所述目标榜单对所述单元测试覆盖率的排名进行展示。
5.根据权利要求1所述的单元测试覆盖率的分析方法,其特征在于,所述利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,包括:
利用覆盖率统计组件基于所述目标配置选项对待扫描组件对待扫描组件进行扫描,并执行测试报告命令,以生成覆盖率统计文件;
对所述覆盖率统计文件进行解析,以确定所述待扫描组件的单元测试覆盖率。
6.根据权利要求1所述的单元测试覆盖率的分析方法,其特征在于,所述通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息,包括:
通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的组件名称、作者信息、组件版本信息以及组件功能信息。
7.根据权利要求1至6任一项所述的单元测试覆盖率的分析方法,其特征在于,所述利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告,包括:
利用报告输出组件基于所述文件类型生成单元测试覆盖率分析报告,并将所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息写入所述单元测试覆盖率分析报告,并输出所述单元测试覆盖率分析报告。
8.一种单元测试覆盖率的分析装置,其特征在于,包括:
数据确定模块,用于通过配置组件对命令行进行配置,以确定目标配置选项以及待输出的单元测试覆盖率分析报告的文件类型;
文件生成模块,用于利用覆盖率统计组件基于所述目标配置选项对待扫描组件进行扫描操作,以确定所述待扫描组件的单元测试覆盖率;
信息确定模块,用于通过结果分析组件对所述待扫描组件的预设组件信息文件进行解析,以确定所述待扫描组件的目标组件信息;
报告生成模块,用于利用报告输出组件对所述目标配置选项、所述单元测试覆盖率以及所述目标组件信息进行处理,以基于所述文件类型输出相应的单元测试覆盖率分析报告。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的单元测试覆盖率的分析方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的单元测试覆盖率的分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310742255.4A CN116737577A (zh) | 2023-06-21 | 2023-06-21 | 一种单元测试覆盖率的分析方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310742255.4A CN116737577A (zh) | 2023-06-21 | 2023-06-21 | 一种单元测试覆盖率的分析方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116737577A true CN116737577A (zh) | 2023-09-12 |
Family
ID=87905876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310742255.4A Pending CN116737577A (zh) | 2023-06-21 | 2023-06-21 | 一种单元测试覆盖率的分析方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116737577A (zh) |
-
2023
- 2023-06-21 CN CN202310742255.4A patent/CN116737577A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7398469B2 (en) | Automated test system for testing an application running in a windows-based environment and related methods | |
CN111930635A (zh) | 基于swagger快速自动化测试的方法及系统 | |
CN107688538B (zh) | 一种脚本执行方法、装置及计算设备 | |
CN111240973B (zh) | 基于仿真的设备测试方法、系统及可读存储介质 | |
CN111078567B (zh) | 自动化测试平台的报告生成方法、终端和存储介质 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN110673847A (zh) | 配置页面的生成方法、装置、电子设备和可读存储介质 | |
CN111061464B (zh) | 解析代码生成方法、装置、设备及存储介质 | |
CN113467868B (zh) | 一种创建设备资源的方法和装置 | |
CN111459495A (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
US20140101097A1 (en) | Template based database analyzer | |
CN106713011B (zh) | 一种获取测试数据的方法与系统 | |
CN113760763A (zh) | 软件测试方法、设备、服务器和系统 | |
CN106354629A (zh) | 一种基于多级服务器的iOS系统移动应用自动测试系统的架构方法 | |
CN112269746A (zh) | 自动化测试方法及相关设备 | |
CN110750453B (zh) | 基于html5的智能移动端测试方法、系统、服务器及存储介质 | |
KR20130097252A (ko) | 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치 | |
CN110688315A (zh) | 接口代码检测报告生成方法、电子装置及存储介质 | |
CN113656304B (zh) | 一种前端应用程序的测试方法、设备和存储介质 | |
CN112256557B (zh) | 程序回归测试方法、装置、系统、计算机设备及存储介质 | |
CN107908525B (zh) | 告警处理方法、设备及可读存储介质 | |
CN111026669B (zh) | 测试日志管理方法、测试日志管理装置及存储介质 | |
CN116737577A (zh) | 一种单元测试覆盖率的分析方法、装置、设备及存储介质 | |
CN110716866A (zh) | 代码质量扫描方法、装置、计算机设备及存储介质 | |
CN112416995B (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 |