0


解决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上面重新构建

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

如下图:

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

标签: 单元测试 jenkins

本文转载自: https://blog.csdn.net/weixin_48788601/article/details/119936719
版权归原作者 是一个菜鸟程序员啊 所有, 如有侵权,请联系我们删除。

“解决sonar的单元测试的覆盖率会为0问题”的评论:

还没有评论