Как я могу указать путь отчета cobertura для плагина gradle sonar-runner?

Я пытаюсь преобразовать свою конфигурацию из старого плагина gradle «sonar» в новый плагин gradle «sonar-runner» для gradle 1.5.

Поскольку я переключился на подключаемый модуль sonar-runner, сонар больше не использует мой файл покрытия cobertura.xml для расчета покрытия модульными тестами. Я не могу найти примеры в руководстве пользователя sonar-runner, показывающих как это настроить. Раньше я использовал sonar.project.coberturaReportPath, чтобы указать местоположение моего покрытия.xml.

Мой экземпляр сонара v.3.4. Я использую плагин Gradle Cobertura для создания моего покрытия.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")
    }
}

person Becca Gaspard    schedule 04.04.2013    source источник


Ответы (2)


Вы должны убедиться, что используете правильные свойства Sonar. Из 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(...)
}
person Peter Niederwieser    schedule 04.04.2013
comment
Да, это сделало свое дело! Мне не нужно было указывать sonar.java.coveragePlugin, так как я установил cobertura по умолчанию в сонаре, но, вероятно, было бы неплохо установить его на всякий случай. - person Becca Gaspard; 05.04.2013

Я использовал:

и я не мог заставить его работать. Сонар показывал «-» вместо процента покрытого кода.

Я нашел это JIRA, которое должно быть исправлено в Sonar Groovy Plugin 1.0, если у вас возникла та же проблема, что и у меня, и версия 1.0 уже выпущена, обновление может исправить проблема.

В противном случае в этой теме обсуждается обходной путь:

  • Загрузите ветвь Spantree плагина Sonar Groovy.
  • Разархивировать и собрать (mvn install в корень проекта sonar-groovy-master)
  • Скопируйте sonar-groovy-plugin-1.0-spantree-SNAPSHOT.jar в подкаталог extensions/plugins вашего установочного каталога Sonar.
  • Удалите или измените расширение старого sonar-groovy-plugin-0.6.jar
  • Перезапустите эхолот и повторите попытку gradle sonarRunner
person boumbh    schedule 29.04.2013