jenkins+sonar+jacoco实现代码扫描UT覆盖率统计


前言:网络上搜了一大堆文章,里面诸多错误,踩了很多坑,这里记录下防止下次踩坑。
注:这里不介绍jenkin服务、sonar服务的搭建

一、pom.xml文件引入jacoco插件

废话不多说直接上代码

<build>
		<plugins>
			<plugin>
				<!--maven的插件-->
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<!--Maven执行UT的插件-->
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.22.1</version>
				<configuration>
					<useSystemClassLoader>false</useSystemClassLoader>
					<skipTests>false</skipTests>
				</configuration>
			</plugin>
			<plugin>
				<!--jacoco插件-->
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.5</version>
				<configuration>
					<!--跳过test:false-->
					<skip>false</skip>
					<!--声明生成jacoco测试报告的位置,默认也是target,建议还是配置这个路径-->
					<destFile>${basedir}/target/jacoco.exec</destFile>
				</configuration>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<configuration>
							<dataFile>${basedir}/target/jacoco.exec</dataFile>
							<outputDirectory>${basedir}/target</outputDirectory>
						</configuration>
						<id>report</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

二、jenkins安装jacoco插件

这个很简单,找到jenkins的插件管理里,输入jacoco然后安装重启jenkins即可
在这里插入图片描述

三、jenkins安装sonar插件

这一步也和上面没有什么区别,同样搜索sonar插件,安装重启jenkins即可
在这里插入图片描述

四、系统配置中配置sonar

sonar的配置如下,这里可以不添加登录账号,在job里面配置也是没有问题的,jacoco则不用配置,因为jacoco的数据是传到sonar上的
在这里插入图片描述

五、配置jenkins的job的-构建

1)新增一个构建,如下图:

在这里插入图片描述

2)配置如下图:

在这里插入图片描述
上面的配置的具体信息如下:

#sonar-scanner.bat -D"
# 随便取名,这里取什么名称在sonar里就展示什么
sonar.projectKey=auth-server-sonarqube
sonar.sources=/var/jenkins_home/workspace/auth-server-PRD/src/
sonar.host.url=http://172.17.32.73:9000
sonar.login=186926b020d8a7ce41524799d964a61057a21e97
sonar.java.binaries=./
sonar.sourceEncoding=UTF-8
#代码覆盖率扫描目录
sonar.core.codeCoveragePlugin=jacoco
# 这里的路径是寻找jacoco.exec的路径,这个路径就是pom.xml中配置的路径
sonar.jacoco.reportPaths=/var/jenkins_home/workspace/auth-server-PRD/target/jacoco.exec

六、配置jenkins的job的-构建后操作

1)新增构建后操作,如下图:

在这里插入图片描述

2)默认生成的配置如下,可以丝毫不用更改,直接使用就是可以的

在这里插入图片描述
这样就完全配置成功了,之后执行job就可以了。

3)查看UT覆盖率,如下图:

在这里插入图片描述
这样就ok了

七、碰到的坑

1.maven项目中生成的test类位置不正确

如果目录下没有test目录,我们需要手动在src目录下创建一个test目录,再在test目录下创建一个java目录,不过若是测试java目录不是绿色的。则需要我们像下面这样操作下

1)找到这个按钮点进去

在这里插入图片描述

2)照如下图操作即可

在这里插入图片描述
此时再生成测试类,就会自动生成在test对应的文件夹下面了。

2.找不到jacoco.exec文件-场景一

若是maven项目里没有test目录就会出现这种情况,所以执行jacoco手机UT覆盖率时需要我们先建立test目录,且需要test下面的java目录是绿色的才可以。

3.找不到jacoco.exec文件-场景二

还有一种可能就是jacoco配置的路径不正确,在jenkins的构建这个步骤中会配置寻找jacoco.exec文件的目录,这个目录是插件中配置的,需要确保两个目录完全一致,不一致也是找不到jacoco.exec文件的

4.执行test命令报错:node -v …

若是没有test目录就会报一个错误,node -v。。。,看到这个错误就建立一个正确的test文件夹即可。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归去来 兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值