在Maven项目上配置Sonar 6.2代码覆盖率

时间:2017-11-23 16:53:11

标签: java maven sonarqube code-coverage

我有非常标准的Maven多模块项目(使用JUnit,Arquillian和Selenium测试)。我在服务器上安装了Sonar 6.2。在我的Sonar项目中,代码覆盖率指标表示0.0%。但我知道这是错误的,因为我有一些测试报道。

我发现this Generic Test Data documentation page解释说,因为6.2 Sonar支持开箱即用的代码覆盖,并且我必须将逗号分隔的报告路径列表传递给参数{{ 1}}(我想在我的pom或命令行中提供)。

我很好。但是我找不到一个关于如何为一个漂亮的经典Java项目设置它的例子的例子。我需要在列表中提供什么样的文件?每个Surefire / Failsafe报告的相对路径?我是否还需要生成Jacoco报告?如果我的所有报告都具有相同的名称,我可以提供像sonar.coverageReportPaths这样的“通用”路径吗?

1 个答案:

答案 0 :(得分:2)

对于标准Java项目,最简单的方法是使用JaCoCo生成coverage数据,然后将其提供给SonarJava(SonarQube的插件来分析Java代码)。你可以在这里找到文档 https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project

您可能会发现在单元测试和集成测试之间存在分离,这已被弃用,现在只有一种覆盖范围。

如果不清楚,请随时联系邮件列表或询问问题,我们正在改进此文档。