一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

代码覆盖率报告生成方法、装置、计算机设备以及介质与流程

2022-06-29 06:44:58 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种代码覆盖率报告生成方法、装置、计算机设备、存储介质和计算机程序产品。


背景技术:

2.随着计算机技术的发展,出现了各种各样的软件程序、软件服务平台,这些程序和平台可以基于编写好的代码程序来实现对应功能,以给人们带来便捷。
3.在计算机编程中,代码覆盖率测试是非常重要的。具体来说,代码覆盖是软件测试的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标。
4.在传统技术中,代码覆盖率是由具体的测试人员通过在模拟多种测试环境,手动记录下对应的测试数据,填写之后生成最终的代码覆盖率报告。这种基于人工生成代码覆盖率报告的方案虽然最终可以得到所需的报告,但是整个过程中,需要专业的技术人员在计算机上进行多次操作,代码覆盖率报告生成效率低下。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种自动的代码覆盖率报告生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
6.第一方面,本技术提供了一种代码覆盖率报告生成方法,方法包括:
7.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
8.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
9.执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;
10.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
11.在其中一个实施例中,根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告包括:
12.根据代码覆盖率数据,生成二进制代码覆盖率文件;
13.结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
14.在其中一个实施例中,结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告包括:
15.调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html(hypertext markup language,超文本标记语言)格式的代码覆盖率报告。
16.在其中一个实施例中,执行预设的jacocoreport.sh脚本,从应用服务器收集代码
覆盖率数据包括:
17.执行预设的jacocoreport.sh脚本;
18.调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
19.在其中一个实施例中,获取项目源代码包括:
20.访问svn服务器,通过checkout命令获取项目源代码。
21.在其中一个实施例中,根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告之后,还包括:
22.响应用户平台发送的代码覆盖率报告在线查看请求;
23.启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
24.第二方面,本技术还提供了一种代码覆盖率报告生成装置,装置包括:
25.编译模块,用于获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
26.部署模块,用于读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
27.脚本执行模块,用于执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;
28.报告生成模块,用于根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
29.第三方面,本技术还提供了一种计算机设备。计算机设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
30.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
31.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
32.执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;
33.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
34.第四方面,本技术还提供了一种计算机可读存储介质。计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
35.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
36.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
37.执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;
38.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
39.第五方面,本技术还提供了一种计算机程序产品。计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
41.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务
器;
42.执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;
43.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
44.上述代码覆盖率报告生成方法、装置、计算机设备、存储介质和计算机程序产品,获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器,执行预设的jacocoreport.sh脚本,从所述应用服务器收集代码覆盖率数据;根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。整个过程中,自动获取源代码、部署项目,并且采用执行jacocoreport.sh脚本的方式来从应用服务器自动收集代码覆盖率数据,最终自动生成可读的代码覆盖率报告。
附图说明
45.图1为一个实施例中代码覆盖率报告生成方法的应用环境图;
46.图2为一个实施例中代码覆盖率报告生成方法的流程示意图;
47.图3为另一个实施例中代码覆盖率报告生成方法的流程示意图;
48.图4为一个应用实例中代码覆盖率报告生成方法的交互示意图;
49.图5为一个实施例中代码覆盖率报告生成装置的结构框图;
50.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
52.本技术实施例提供的代码覆盖率报告生成方法,可以应用于如图1所示的应用环境中。其中,工程能力平台、jenkins服务器、应用服务器以及svn服务器组成组网网络,工程能力平台与jenkins服务器配合执行本技术代码覆盖率报告生成方法的方案,jenkins服务器访问svn服务器,获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;用户在工程能力平台上点击报告生成按钮,发起生成代码覆盖率测试请求至jenkins服务器,jenkins服务器调用预设的jacocoreport.sh脚本,将工程能力平台传输来的应用服务器端口与地址作为入参,执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告,将生成代码覆盖率报告反馈至工程能力平台。
53.在一个实施例中,如图2所示,提供了一种代码覆盖率报告生成方法,包括以下步骤:
54.s100:获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件。
55.jenkins是一款开源持续集成和持续部署软件,用于自动化各种任务,包括构建、
测试和部署软件。jenkins服务器是指加载有jenkins的服务器。在实际应用时,jenkins服务器获取项目源代码,其具体可以通过访问svn服务器来获取项目源代码。svn是subversion的缩写,是一款开源的版本控制系统,应用系统的源代码在svn的中心版本库中保存和管理。具体的,jenkins服务器访问svn服务器,通过checkout命令获取项目源代码。项目源代码是指执行当前目标任务的源代码,例如需要执行abs项目,则项目源代码即为abs项目源代码。对项目源代码进行本地构建编译,编译之后会得到class文件。进一步的,jenkins服务器还可以将编译后的class文件按照指定路径缓存,以便后续读取、调用。
56.s200:读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器,并记录应用服务器的地址与端口。
57.jenkins服务器读取class文件所需的资源文件,将class文件和资源文件打包,这个打包具体可以是直接将数据打包成一个war包,打包之后的压缩包被部署至应用服务器。即jenkins服务器在打包生成项目压缩包之后将该项目压缩包发送至应用服务器进行部署s300:执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据。
58.jenkins服务器上预先存有预设jacocoreport.sh脚本。jenkins服务器执行预设的jacocoreport.sh脚本,jenkins服务器访问应用服务器,从应用服务器上收集代码覆盖率数据。具体来说,通过预设的jacocoreport.sh脚本会执行jenkins服务器上的ant脚本,ant脚本调用jacoco提供的dump命令从应用服务器中读取代码执行相关信息,即收集代码覆盖率数据。
59.s400:根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
60.代码覆盖率数据需要结合项目源代码以及class文件才可以最终生成可读的代码覆盖率报告。因此,jenkins服务器将代码覆盖率数据、项目源代码以及class文件进行组合,生成可读的代码覆盖率报告。具体来说,jenkins服务器在获取到代码覆盖率数据之后,将代码覆盖率数据按照指定路径存储,再将调用命令,指定代码覆盖率数据的存储路径、项目源代码的存储路径以及class文件的存储路径来进行组合转换,得到可读的代码覆盖率报告。
61.上述代码覆盖率报告生成方法,获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。整个过程中,自动获取源代码、部署项目,并且采用执行jacocoreport.sh脚本的方式来从应用服务器自动收集代码覆盖率数据,最终自动生成可读的代码覆盖率报告。
62.如图3所示,在其中一个实施例中,s400包括:
63.s420:根据代码覆盖率数据,生成二进制代码覆盖率文件;
64.s440:结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
65.jenkins服务器根据代码覆盖率数据,生成二进制代码覆盖率文件,为最终得到的可读的代码覆盖率报告,将二进制代码覆盖率文件、项目源代码以及class文件进行结合。进一步来说,调用命令,将从应用服务器收集到的代码覆盖率数据写入到初始二进制代码
覆盖率文件中,生成二进制代码覆盖率文件,该二进制代码覆盖率文件不可读,再继续调用命令将二进制代码覆盖率文件与项目源代码以及class文件进行结合,最终生成可读的代码覆盖率报告,上述整个结合过程可以通过脚本调用命令的方式来实现。
66.在其中一个实施例中,结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告包括:
67.调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html格式的代码覆盖率报告。
68.jenkins服务器中存储有预设的jacocoreport.sh脚本,jacocoreport.sh脚本执行ant脚本,以调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html格式的代码覆盖率报告。jacoco基于asm技术修改字节码方法,在类被加载入java虚拟机jvm之前动态改变类行为。jvm通过-javaagent参数指定特定的jacocoagent.jar文件(jacoco库提供)启动instrumentation代理程序,代理程序在装载class文件前判断是否已经转换修改了文件,若没有,则将探针(统计代码)插入class文件,最后在jvm执行测试代码的过程中完成对覆盖率的分析。
69.在其中一个实施例中,执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据包括:
70.执行预设的jacocoreport.sh脚本;调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
71.与上述类似的,jenkins服务器中jacocoreport.sh脚本执行ant脚本,调用jacoco工具提供的dump命令,从应用服务器读取代码执行相关信息,即从应用服务器收集代码覆盖率数据。
72.在实际应用中,jenkins服务器上存有jacocoreport.sh脚本,此脚本接收外部传来的应用服务器地址和端口,然后调用jacoco提供的dump命令,将应用服务器收集到的代码覆盖率数据写入jacoco.exec二进制文件。此二进制文件报告不可读,jacoco将二进制文件结合项目源代码和编译后的class文件,转换生成可读的html格式的代码覆盖率报告。
73.在其中一个实施例中,根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告之后,还包括:
74.响应用户平台发送的代码覆盖率报告在线查看请求;启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
75.在实际应用中,用户在需要在线查看代码覆盖率报告时,用户在平台进行操作,用户点击“生成报告”按钮,用户平台生成代码覆盖率报告在线查看请求,并且将该请求发送至jenkins服务器,jenkins服务器启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。具体来说,nginx服务是开源、高性能、高可靠的web和反向代理服务。jenkins服务器上部署nginx服务,经过反向代理后,可读的代码覆盖率报告就可以通过终端浏览器在线查看。
76.为详细说明本技术代码覆盖率报告生成方法的技术方案及其效果,下面将采用具体应用实例,并且结合交互示意图图4展开说明。
77.在具体应用实例中,jenkins服务器分别与工程能力平台(用户平台)、应用系统服务器(应用服务器)以及svn服务器构成组网,以abs项目为例,整个代码覆盖率报告生成包
括以下步骤:
78.1、jenkins服务器(100.74.128.135)从svn服务器(100.74.128.138)checkout出abs项目源代码并在jenkins服务器上做本地构建,源代码会被下载到路径/var/lib/jenkins/workspace/abs/src里,编译之后的class文件会被生成到路径/var/lib/jenkins/workspace/abs/webapp/web-inf/classes下。
79.2、jenkins将abs的class文件和其他所需的资源文件打包成abs.war,部署到abs测试环境应用系统服务器(100.74.128.124)的tomcat里,并重启tomcat。应用服务器上部署的jacoco agent程序会生效并开始监控jvm,收集代码执行的相关数据。
80.3、工程能力平台(100.74.128.136)上abs项目对应的“生成报告”按钮被点击时,工程能力平台的后台程序远程连接上jenkins服务器(100.74.128.135),执行/home/jenkins/jacocoreport.sh脚本,传入jenkins工程名称abs、jacoco监控服务器ip地址100.74.128.124和端口7781等参数。
81.4、/home/jenkins/jacocoreport.sh脚本会执行jenkins服务器上的ant脚本/home/jenkins/jacoco.xml,脚本调用jacoco提供的dump命令从abs应用服务器的jvm中读取代码执行相关信息,然后导出代码覆盖率二进制代码覆盖率报告文件jacoco.exec到abs工程路径下/var/lib/jenkins/workspace/abs/jacoco.exec。
82.5、jacoco.exec是二进制代码覆盖率报告文件,必须结合源代码和class文件才能转换成可读的报告内容。所以在第四步ant脚本jacoco.xml中继续调用jacoco提供的report命令,指定源代码路径/var/lib/jenkins/workspace/abs/src和class文件路径/var/lib/jenkins/workspace/abs/webapp/web-inf/classes,将jacoco.exec转换生成html格式的代码覆盖率报告文件到/home/jenkins/report/abs路径下;jenkins服务器上的nginx会反向代理/home/jenkins/report/abs路径下的所有html文件,这样测试人员可以通过浏览器访问http://100.74.128.135/abs来在线查看代码覆盖率报告。
83.应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
84.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的代码覆盖率报告生成方法的代码覆盖率报告生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个代码覆盖率报告生成装置实施例中的具体限定可以参见上文中对于代码覆盖率报告生成方法的限定,在此不再赘述。
85.在一个实施例中,如图5所示,提供了一种代码覆盖率报告生成装置,包括:
86.编译模块100,用于获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
87.部署模块200,用于读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
88.脚本执行模块300,用于执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;
89.报告生成模块400,用于根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
90.上述代码覆盖率报告生成装置,获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。整个过程中,自动获取源代码、部署项目,并且采用执行jacocoreport.sh脚本的方式来从应用服务器自动收集代码覆盖率数据,最终自动生成可读的代码覆盖率报告。
91.在其中一个实施例中,报告生成模块400还用于根据代码覆盖率数据,生成二进制代码覆盖率文件;结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
92.在其中一个实施例中,报告生成模块400还用于调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html格式的代码覆盖率报告。
93.在其中一个实施例中,脚本执行模块300还用于执行预设的jacocoreport.sh脚本;调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
94.在其中一个实施例中,编译模块100还用于访问svn服务器,通过checkout命令获取项目源代码。
95.在其中一个实施例中,代码覆盖率报告生成装置还包括报告查看模块,用于响应用户平台发送的代码覆盖率报告在线查看请求;启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
96.上述代码覆盖率报告生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
97.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设脚本数据。该计算机设备的网络接口用于与外部的用户平台通过网络连接通信。该计算机程序被处理器执行时以实现一种代码覆盖率报告生成方法。
98.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
99.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
100.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
101.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
102.执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;
103.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
104.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
105.根据代码覆盖率数据,生成二进制代码覆盖率文件;结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
106.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
107.调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html(hypertext markup language,超文本标记语言)格式的代码覆盖率报告。
108.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
109.执行预设的jacocoreport.sh脚本;调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
110.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
111.访问svn服务器,通过checkout命令获取项目源代码。
112.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
113.响应用户平台发送的代码覆盖率报告在线查看请求;启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
114.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
115.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
116.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
117.执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;
118.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
119.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
120.根据代码覆盖率数据,生成二进制代码覆盖率文件;结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
121.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
122.调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html(hypertext markup language,超文本标记语言)格式的代码覆盖率报告。
123.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
124.执行预设的jacocoreport.sh脚本;调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
126.访问svn服务器,通过checkout命令获取项目源代码。
127.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
128.响应用户平台发送的代码覆盖率报告在线查看请求;启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
129.在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
130.获取项目源代码,对项目源代码进行本地构建编译,得到编译后的class文件;
131.读取class文件所需的资源文件,将class文件与资源文件打包部署至应用服务器;
132.执行预设的jacocoreport.sh脚本,从应用服务器收集代码覆盖率数据;
133.根据代码覆盖率数据、项目源代码以及class文件,组合生成可读的代码覆盖率报告。
134.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
135.根据代码覆盖率数据,生成二进制代码覆盖率文件;结合二进制代码覆盖率文件、项目源代码以及class文件,生成可读的代码覆盖率报告。
136.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
137.调用jacoco工具提供的report命令,将二进制代码覆盖率文件与项目源代码以及class文件结合,转换生成html(hypertext markup language,超文本标记语言)格式的代码覆盖率报告。
138.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
139.执行预设的jacocoreport.sh脚本;调用jacoco工具提供的dump命令,从应用服务器收集代码覆盖率数据。
140.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
141.访问svn服务器,通过checkout命令获取项目源代码。
142.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
143.响应用户平台发送的代码覆盖率报告在线查看请求;启动预部署的nginx服务,通过反向代理方式将可读的代码覆盖率报告推送至用户平台。
144.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
145.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,
pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
146.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
147.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献