本文作者:kaifamei

cr2格式怎么用百度云打开

更新时间:2023-01-04 02:42:17 人在看 0条评论

cr2格式怎么用百度云打开


2023年1月4日发(作者:世界最美的十大海滩)

idea怎么使⽤jacoco⽣成报告_基于jacoco的功能测试代码覆盖

率实践

1.基于jacoco的功能测试代码覆盖率实践

1.1⽬前主流代码覆盖率统计⼯具

考虑到⽅案实施的难度很⼤取决于⼯具是否仍保持维护更新,所以选择jacoco来进⾏实践。

Jacoco是⼀个开源的覆盖率⼯具。Jacoco可以嵌⼊到Ant、Maven中,并提供了EclEmmaEclipse插件,也可以使⽤JavaAgent技

术监控Java程序。很多第三⽅的⼯具提供了对Jacoco的集成,如sonar、Jenkins、IDEA。

Jacoco包含了多种尺度的覆盖率计数器,包含指令级(Instructions,C0coverage),分⽀(Branches,C1coverage)、圈复杂度

(CyclomaticComplexity)、⾏(Lines)、⽅法(Non-abstractMethods)、类(Classes)。

➢Instructions:Jacoco计算的最⼩单位就是字节码指令。指令覆盖率表明了在所有的指令中,

哪些被指令过以及哪些没有被执⾏。这项指数完全独⽴于源码格式并且在任何情况下有效,不需要类⽂件

的调试信息。

➢Branches:Jacoco对所有的if和switch指令计算了分⽀覆盖率。这项指标会统计所有的分⽀数

量,并同时⽀出哪些分⽀被执⾏,哪些分⽀没有被执⾏。这项指标也在任何情况都有效。异常处理不考虑在分⽀范围内。

➢CyclomaticComplexity:Jacoco为每个⾮抽象⽅法计算圈复杂度,并也会计算每个类,包,组的复杂度。根据McCabe1996的定

义,圈复杂度可以理解为覆盖所有的可能情况最少使⽤的测试⽤

例数。这项参数也在任何情况下有效。

➢Lines:该项指数在有调试信息的情况下计算。

➢Methods:每⼀个⾮抽象⽅法都⾄少有⼀条指令。若⼀个⽅法⾄少被执⾏了⼀条指令,就认为它被执⾏过。因为JaCoco直接对字节码

进⾏操作,所以有些⽅法没有在源码显⽰(⽐如某些构造⽅法和由编

译器⾃动⽣成的⽅法)也会被计⼊在内。

➢Classes:每个类中只要有⼀个⽅法被执⾏,这个类就被认定为被执⾏。同5⼀样,有些没有在源码声明的⽅法被执⾏,也认定该类被执

⾏。

1.2jacoco部署准备⼯作

➢下载安装ANT,具体可参考百度,需配置环境变量。

第⼀步:解压下载的⽂件,将lib⽂件夹下的包拷贝放到对应tomcat服务器的lib⽬录下

第⼆步:修改tomcatbin⽬录下的⽂件,在setlocal后添加如下代码:

set"JAVA_OPTS=-javaagent:%CATALINA_HOME%=includes=em.

jeesite.*,output=tcpserver,port=8144,address=127.0.0.1-Xverify:none"

(限Windows环境,其他系统略有不同,需先停掉tomcat服务)

配置完成后,可直接重启tomcat服务,查看logs⽬录下的catalina⽇志,查找jacocoagent字段,若有,则代表配置成功。

第三部:添加配置⽂件,随便存储在哪⾥都成,具体配置如下:

1.3本地⽣成覆盖率报告

以上配置完成后,可进⾏对应的功能测试操作,通过antdump命令,可动态获

取覆盖率数据,不需要停⽌tomcat服务器。

备注:Jenkins的Jacocoplugin可以根据.exec⽂件直接⽣成覆盖率报告,并在Jenkins中⽣成图

表等等。那样的话,antreport这个任务就没⽤了。可直接在jenkins中配置,在每次项⽬构建的时候⾃

动执⾏report,这样就不需要将项⽬源码⽂件checkout到本地

➢打开cmd命令⾏窗⼝,进⼊所在⽬录,执⾏antdump,

若成功,会输出如下信息:

➢在执⾏antreport。jacoco就会在你指定的路径⽣成覆盖率报告了

2.基于jacoco+SonarQube+sonar-scanner的集成实践

SonarQube能够提供对代码的⼀整套检查扫描和分析功能,可以通过sonar-scanner完成对各开发环境和软件的⽀持。通过整合jacoco

不仅可以展⽰代码扫描结果,也能图形化显⽰测试覆盖率情况。

2.1SonarQube准备⼯作

第⼀步:

➢安装MySql,并创建数据库(也可使⽤内置数据库,实际使⽤会很慢)

--创建数据库:

CREATEDATABASEsonarCHARACTERSETutf8COLLATEutf8_general_ci;--创建SonarQubeServer访问数据库的⽤户:

CREATEUSER'sonar'IDENTIFIEDBY'sonar';

--配置SonarQubeServer访问数据库⽤户的权限

GRANTALLONsonar.*TO'sonar'@'%'IDENTIFIEDBY'sonar';

GRANTALLONsonar.*TO'sonar'@'localhost'IDENTIFIEDBY'sonar';

--更新权限:

flushprivileges;

第⼆步:

➢配置SonarQube配置⽂件,打开SonarQube下的conf/ties

➢配置sonar-scanner配置⽂件,修改ties⽂件

第三步:

➢配置SonarQube系统

第四步:

对应项⽬⼯程添加properties配置⽂件,⽂件内容如下:

#指定SonarQubeinstance必须是唯⼀的

tKey=BR_CR2794_20170419

#设置SonarQubeUI显⽰的名称

tName=hrms

tVersion=1.0

ge=java

#指定src和classes⽂件夹位置,当可以是全路径,如果是当前⼯程根⽬录下⽤“.”表⽰也可以

s=src

es=target

#不参与分析的某个⽂件夹或者忽略某个⽂件夹

#ions=src1/**,src3/**

#ions=src2/**,src4/**

#源码编码,默认是系统编码

Encoding=UTF-8

#SetjacocoConfiguration

#指定代码覆盖率⼯具

veragePlugin=jacoco

#指定exec⼆进制⽂件存放路径

Paths=D:/covge/

#以下属性⾮必须,具体含义参考百度

cAnalysis=reuseReports

=false

2.2SonarQube执⾏项⽬分析

以上配置完成后,打开cmd窗⼝,进⼊⼯程根⽬录,执⾏sonar-scanner命

令,若报错,可在命令后加上-X重新执⾏⼀遍,会显⽰详细报错信息。成功应

有如下内容输出:

2.2SonarQube集合jenkins和maven使⽤

➢在Jenkins中安装和使⽤SonarQube的先决条件:安装插件SonarQubePlugin,并且Jenkins插件SonarQubePlugin在配置位

置Jenkins->Configuration->ConfigureSystem->SonarQubeservers中的选项ServerURL要配置正确,使⽤已经安装好的

SonarQubeServer的URL

➢修改maven配置,参照官⽅配置:

sonar

true

修改Maven配置之后,在Maven构建指令上加上⼀个Goals即可:

$SONAR_MAVEN_=$SONAR_HOST_URL


文章投稿或转载声明

本文链接:https://www.en369.cn/fanwen/xinxi-8-75501-0.html

来源:范文频道-369作文网版权所有,转载请保留出处。本站文章发布于 2023-01-04 02:42:17

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论