解决sonar的单元测试的覆盖率会为0问题

今天做项目遇到一个问题,明明做单元测试时覆盖率已经百分百了,然后传到Jenkin上,构建也成功了,但偏偏覆盖率就是为零,非常确定代码没有问题,所以唯一的问题就是出现在配置上了。

一开始的结果如下:

 Jenkin上面的配置如下:

一开始以为是我要扫描的包原因,所以我就在这下面把全部文件的路径都加上去了,结果却没有显示覆盖率了,进去深处一开,也是为零。

后来才知道

加了这些路径的意思是 sonar都不要扫描这些包,因为他和我们做的单元测试没有关系,因此这个配置是要加和单元测试无关的文件路径,之前我把和测试无关的文件全部加上了,sonar以为都不要读取这些文件,所以覆盖率自然就没有显示了。

回归正传,既然知道了问题出现在哪里,就针对他修改。

我把和单元测试有关的文件路径删除之后,覆盖率虽然显示出来了,但还是为零。所以修改了一下配置文件, 

修改成这样,但是有些人修改成这样的话,可能构建就会出现问题,但没关系,还有另外一种方法,就是在pom文件加下面这段代码:

 <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>0.7.8</version>
        <executions>
          <execution>
            <goals>
              <goal>prepare-agent</goal>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
  </plugin>

 具体是啥原因咋也不知道,都是百度解决的,咱也没搞清楚。

然后install一下,就会发现target目录下出现jacoco.exec这个jar包,出现这个之后,距离成功就是只剩下两步了:

1、重新提交代码到git上

2、去Jenkin上面重新构建

然后就会发现覆盖率出来了!!!

如下图:

以上,就是我遇到问题的解决方法了。 

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值