2013-04-04 107 views
1

我試圖將我的配置從舊的gradle'sonar'插件轉換爲gradle 1.5的新gradle'sonar-runner'插件。如何爲gradle sonar-runner插件指定cobertura報告路徑?

自從我切換到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") 
    } 
} 

回答

2

您必須確保使用正確的聲納性能。從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(...) 
} 
+0

是啊,這奏效了!我不需要指定sonar.java.coveragePlugin,因爲我已將cobertura設置爲聲納中的默認值,但將其設置以防萬一,這可能是個好主意。 – 2013-04-04 21:04:51

1

我所用:

,我無法得到它的工作。聲納顯示「 - 」而不是覆蓋代碼的百分比。

我發現這個JIRA應該在Sonar Groovy Plugin 1.0中修復,如果你有和我一樣的問題,並且1.0已經發布了,那麼更新可以解決這個問題。

否則,存在this topic討論解決方法:

  • 下載聲納Groovy插件
  • 解壓的Spantree fork和建設(mvn installsonar-groovy-master項目的根目錄)
  • 複製sonar-groovy-plugin-1.0-spantree-SNAPSHOT.jar在Sonar安裝目錄的extensions/plugins子目錄中
  • 刪除或更改舊的的擴展名210
  • 重新啓動聲納並再次嘗試gradle sonarRunner