Sonarqube上不显示单元测试覆盖率 - 通过Jenkins Sonar插件运行 - 测试成功显示正确

时间:2015-04-17 13:02:19

标签: unit-testing maven junit jenkins sonarqube

我目前正在使用jenkins为我的项目构建不同模块的列表。我使用Maven触发构建。我已经在服务器上安装了sonarqube并且已经正确设置它,以便在模块构建时它显示在sonarqube上并包含所有基本细节,例如代码行,技术债务等。模块都有针对Junit测试的他们和sonarqube通过说单元测试成功是100%来显示它,它还说明了在该模块中运行的测试数量。但是我无法获得单元测试覆盖率字段以显示任何内容,并且所有模块都是空白的。

这是来自我的pom.xml的一个exert(一个模块)

customer.sonar.projectBaseDir=.
customer.sonar.sources=D:/TFS/WorkSpace/DEV_2_HYBRID/APP_FO/application/customer/src/main/java
customer.sonar.Hybrid=Customer
customer.sonar.tests=D:/TFS/WorkSpace/DEV_2_HYBRID/APP_FO/application/customer/target/surefire-reports
customer.sonar.junit.reportsPath=D:/TFS/WorkSpace/DEV_2_HYBRID/APP_FO/application/customer/target/surefire-reports

我使用的软件版本如下: Sonarqube v.5.0,   Jenkins Sonarqube插件v.2.1,   Maven v3.2.5

正如我在开始时所说的那样,单位测试成功率确实显示成功,因此我认为只需要进行一些小的改动就可以使单元测试覆盖范围工作。

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

您需要执行您选择的覆盖引擎,并通过相应的属性向SonarQube提供报告。

如果您使用的是JaCoCo,报告导入器将嵌入到java插件中,对于其他覆盖引擎(clover,cobertura ...),您必须安装专用插件。

有关详细信息,请参阅dedicated page of documentation