我有相当标准的 Maven 多模块项目(带有 JUnit、Arquillian 和 Selenium 测试)。我在服务器上安装了 Sonar 6.2。在我的 Sonar 项目中,代码覆盖率指标显示为 0.0%。但我知道这是错误的,因为我确实有一些测试覆盖率。
我找到了this Generic Test Data documentation page这解释了,由于 6.2 Sonar 支持开箱即用的代码覆盖率,并且我必须将报告路径的逗号分隔列表传递给参数 sonar.coverageReportPaths
(我猜测在我的 pom 或命令行中提供)。
我对此很满意。但我找不到关于如何为一个非常经典的 Java 项目进行设置的示例。我需要在列表中提供什么样的文件?我的每个 Surefire/Failsafe 报告的相对路径?我还需要生成 Jacoco 报告吗?如果我的所有报告都具有相同的名称,我可以提供像 report.xml
这样的“通用”路径吗?
最佳答案
对于标准 Java 项目,最简单的可能是使用 JaCoCo 生成覆盖率数据,然后将其提供给 SonarJava(SonarQube 的用于分析 Java 代码的插件)。您可以在这里找到文档 https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Unit+Tests+for+Java+Project
您可能会发现提到单元测试和集成测试之间的分离,这已被弃用,现在只有单一类型的覆盖范围。
如果有任何不清楚的地方,请随时联系邮件列表或提出问题,我们正在改进此文档。
关于java - 在 Maven 项目上配置 Sonar 6.2 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47460278/