2012-10-11 161 views
4

我正在通過sonar-runner運行一個非常簡單的python項目集,並且遇到了出現測試的問題。Sonar中的Python測試/測試覆蓋率沒有顯示?

我使用Python Plugin 1.1運行Sonar 3.2.1。覆蓋率報告是以前生成的。

我有以下設置:

sonar.dynamicAnalysis=reuseReports 
sonar.core.codeCoveragePlugin=cobertura 
sonar.python.coverage.reportPath=coverage.xml 

不管我在這一點上做的,覆蓋面不出來。

我的測試與我的源文件位於同一個文件夾中......可能是問題所在?聲納代碼是如何規定覆蓋率報告以便通過聲納進行適當的分析的?

編輯:添加了幾個音符......

  • 這是一個多Python實例。我在那裏有三個項目。其他一切似乎都在聲納報告中正確顯示。我爲每個目錄定義了基本目錄和源目錄,並且coverage.xml文件已經預先生成到每個目錄的基本目錄中。
  • 覆蓋面小部件顯示上升,但表明:

    Code coverage 
    - 
    Unit test success 
    0 tests 
    
  • ,當我跑我也看到聲納亞軍:

    10:04:29.641 INFO p.PhasesTimeProfiler - Sensor PythonCoverageSensor... 
    10:04:29.642 INFO .p.c.CoberturaParser - Parsing report '/home/jenkins/jobs/myproject/workspace/trunk/src/python/coverage.xml' 
    10:04:29.883 INFO p.PhasesTimeProfiler - Sensor PythonCoverageSensor done: 242 ms 
    
+0

使用SonarQube 4.4並存在同樣的問題。 sonar-runner正在處理正確的文件,但報道報告未顯示在儀表板上。你有沒有找到解決方案? – EmmEff

+0

毫無疑問,我不這麼認爲。我們已經放棄了Sonar與我們的Python代碼。當我有更多時間時,我會再試一次。 – talon8

+0

你如何生成覆蓋報告文件? –

回答

1

「sonar.python.coverage.reportPath 「必須指向覆蓋文件相對於」sonar-project.properties「文件的路徑。通常,這些臨時文件是在臨時文件夾(如「target」或「bin」)中生成的。所以,你的配置應該更類似於:

sonar.python.coverage.reportPath=target/coverage.xml 
+0

我正在項目的根文件夾中生成礦井。所以我的路徑應該是正確的... – talon8

+3

對不起,如果發佈是有點舊。如果工作目錄發生變化,我發現了差異。覆蓋它不尊重屬性文件,但尊重工作目錄。 – Killrazor

3

也有這個問題,pytest沒有產生正確格式化覆蓋率報告什麼sonarqube可以利用。在pytest生成覆蓋報告後,我運行coverage xml -i,並且此命令生成sonarqube能夠理解的格式正確的覆蓋報告。