最初配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<argLine>-Dfile.encoding=utf-8</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
sonar 扫描后的单元测试覆盖率为0。但是但与测试数量不为0.
而配置的 sonar :
- 单元测试数基于 maven-surefire-plugin 插件
- 单元测试覆盖率基于 jacoco-maven-plugin 插件。
发现 maven 执行后没有 jacoco.exec 文件。导致 sonar 单元测试覆盖率为 0。并且没有下面的 jacoco 结果文件:jacoco.exec。
查看 jacoco-maven-plugin 文档。发现是 maven-surefire-plugin 的 argLine 参数导致 Jacooco 未执行。 于是按照官方文档在 argLine 参数前添加 @{argLine} ,修复后如下:文章来源:https://www.toymoban.com/news/detail-514087.html
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
<argLine>>@{argLine} -Dfile.encoding=utf-8</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.1</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
参考:文章来源地址https://www.toymoban.com/news/detail-514087.html
- https://www.jacoco.org/jacoco/trunk/doc/prepare-agent-mojo.html
到了这里,关于maven sonar 扫描单元测试覆盖率为0,但是单元测试数不为0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!