2015-06-24 45 views
0

我想为我的单元测试计算代码覆盖率&功能测试。 运行我的单元测试后,我生成jacoco.exec文件。 类似的功能测试,我得到了jacoco-it.exec文件。Sonar + Jacoco + maven:我可以通过简单地向声纳提供jacoco.exec文件来获得代码覆盖率吗?

现在我想提供这些文件作为输入声纳如下:

MVN声纳:声纳-Dsonar.jdbc.url =“的jdbc:mysql的://本地主机:3306 /声纳了useUnicode =真&? characterEncoding = utf8“-Dsonar.jdbc.username = sonar -Dsonar.jdbc.password = sonar -Dsonar.host.url = http://localhost:9000 -Dsonar.jacoco.reportPath = jacoco.exec -Dsonar.jacoco.itReportPath = jacoco-it.exec

但声纳在仪表板上产生0%的覆盖率。 是否有任何其他方式可以从jacoco.exec文件中计算覆盖范围,而无需提供我的源代码/二进制文件来分析它?

回答

0

你的pom.xml中的jacoco的配置是什么?

你有没有检查你的报告路径?

从sonarqube的示例代码展示了如何有UT,IT和覆盖范围使用Jacoco: http://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it/combined-ut-it-multimodule-maven-jacoco

而且我觉得在pom.xml中设置属性优于使用-D参数.. 。

<properties> 
    <!-- select JaCoCo as a coverage tool --> 
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> 
    <!-- force sonar to reuse reports generated during build cycle --> 
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> 
    <!-- set path for unit tests reports --> 
    <sonar.jacoco.reportPath>${project.basedir}/target/jacoco-unit.exec</sonar.jacoco.reportPath> 
    <!-- all modules have to use the same integration tests report file --> 
    <sonar.jacoco.itReportPath>${project.basedir}/../target/jacoco-it.exec</sonar.jacoco.itReportPath> 
</properties> 
相关问题