如何为gradle sonar runner插件指定cobertura报告路径?

如何为gradle sonar runner插件指定cobertura报告路径?,gradle,sonarqube,sonar-runner,Gradle,Sonarqube,Sonar Runner,我正在尝试将我的配置从旧的gradle“sonar”插件转换为gradle 1.5的新gradle“sonar runner”插件 由于我切换到sonar runner插件,sonar不再使用我的cobertura coverage.xml来计算单元测试覆盖率。我在中找不到任何显示如何配置的示例。以前,我使用sonar.project.coberturalreportpath指定coverage.xml的位置 我的声纳实例是v.3.4。我正在使用gradle cobertura插件生成cover

我正在尝试将我的配置从旧的gradle“sonar”插件转换为gradle 1.5的新gradle“sonar runner”插件

由于我切换到sonar runner插件,sonar不再使用我的cobertura coverage.xml来计算单元测试覆盖率。我在中找不到任何显示如何配置的示例。以前,我使用sonar.project.coberturalreportpath指定coverage.xml的位置

我的声纳实例是v.3.4。我正在使用gradle cobertura插件生成coverage.xml

以下是我的声纳跑步者配置:

sonarRunner {
    sonarProperties{
        property "sonar.host.url", "http://sonar"
        property "sonar.jdbc.url", "jdbc:mysql://sonar:3306/sonar"
        property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
        property "sonar.username", "username"
        property "sonar.password", "password"
        property "sonar.language", "grvy"
        property "sonar.coberturaReportPath", file("$buildDir/reports/cobertura/coverage.xml") //not sure if this is right!
    }
}
这是我以前的声纳配置(有效!):


你必须确保使用正确的声纳属性。发件人:

我使用的是:

  • 梯度1.5
  • 声纳3.4.1
  • 0.6
我无法让它工作。声纳显示的是“-”而不是覆盖代码的百分比

我发现这应该在1.0中修复,如果你和我有相同的问题,并且1.0已经发布,更新可能会修复这个问题

或者,在以下章节中讨论了解决方法:

  • 下载Sonar Groovy插件的
  • 解压缩并构建(
    mvn安装
    sonargroovy master
    项目的根目录中)
  • 在sonar安装目录的
    extensions/plugins
    子目录中复制
    sonar-groovy-plugin-1.0-spantree-SNAPSHOT.jar
  • 删除或更改旧的
    sonar-groovy-plugin-0.6.jar的扩展
  • 重新启动声纳并再次尝试
    gradle sonarRunner

是的,这就成功了!我不需要指定sonar.java.coveragePlugin,因为我在sonar中已将cobertura设置为默认值,但最好将其设置为以防万一。
sonar {
    server {
        url = "http://sonar"
    }
    database {
        url = "jdbc:mysql://sonar:3306/sonar"
        driverClassName = "com.mysql.jdbc.Driver"
        username = "username"
        password = "password"
    }
    project {
        language = "grvy"
        coberturaReportPath = file("$buildDir/reports/cobertura/coverage.xml")
    }
}
sonarRunner {
    ...
    sonarProperty "sonar.java.coveragePlugin", "cobertura"
    sonarProperty "sonar.cobertura.reportPath", file(...)
}