【问题标题】:How can I specify cobertura report path for gradle sonar-runner plugin?如何为 gradle sonar-runner 插件指定 cobertura 报告路径?
【发布时间】:2013-03-27 02:36:54
【问题描述】:

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

自从我切换到 sonar-runner 插件后,sonar 不再重用我的 cobertura coverage.xml 来计算单元测试覆盖率。我在sonar-runner user guide 中找不到任何示例来展示如何配置它。以前我使用 sonar.project.coberturaReportPath 来指定我的 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!
    }
}

这是我的旧声纳配置(有效!):

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")
    }
}

【问题讨论】:

    标签: gradle sonarqube sonar-runner


    【解决方案1】:

    您必须确保使用正确的声纳属性。来自http://docs.codehaus.org/display/SONAR/Code+Coverage+by+Unit+Tests+for+Java+Project

    sonarRunner {
        ...
        sonarProperty "sonar.java.coveragePlugin", "cobertura"
        sonarProperty "sonar.cobertura.reportPath", file(...)
    }
    

    【讨论】:

    • 是的,成功了!我不需要指定 sonar.java.coveragePlugin,因为我已将 cobertura 设置为声纳中的默认值,但为了以防万一,设置它可能是个好主意。
    【解决方案2】:

    我正在使用:

    我无法让它工作。 Sonar 显示的是“-”而不是覆盖代码的百分比。

    我发现这个JIRA 应该在Sonar Groovy Plugin 1.0 中修复,如果您遇到与我相同的问题并且1.0 已经发布,更新可能会解决问题。

    否则,this topic 中讨论了一种解决方法:

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

    【讨论】:

      猜你喜欢
      • 2015-10-02
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2017-12-14
      • 2016-10-16
      • 1970-01-01
      • 2014-07-08
      • 2014-12-01
      相关资源
      最近更新 更多