SonarQube爲我的項目報告了以下內容。SonarQube無法看到Junit cobertura覆蓋率報告
Unit Tests Coverage 0.0%; Line Coverage 0.0%; Condition Coverage 0.0%
它無法找到Sonar掃描前立即創建的報告。我正在使用Jenkins來啓動SonarQube掃描。事實上,在控制檯輸出中,我可以看到正在執行的單元測試以及保存在surefire目錄中的報告。
下面是控制檯輸出的相關日誌。
[INFO] --- maven-surefire-plugin:2.12:test (default-test) @ earn-promotional-domain ---
[INFO] Surefire report directory: /var/jenkins/workspace/earn/surefire-reports
[INFO] [13:50:20.807] Sensor SurefireSensor
[INFO] [13:50:20.807] parsing /var/jenkins/workspace/earn/surefire-reports
[ERROR] [13:50:20.808] Reports path not found or is not a directory: /var/jenkins/workspace/earn/surefire-reports
[INFO] [13:50:20.808] Sensor SurefireSensor (done) | time=1ms
[INFO] [13:50:20.808] Sensor CoberturaSensor
[INFO] [13:50:20.808] parsing /var/jenkins/workspace/earn/site/cobertura/coverage.xml
我正在使用SonarQube 5.1.2。請讓我知道是否需要任何其他信息,這將有助於找出問題。
我使用JaCoCo,但過程應該是相同的(ish)。您需要注入儀器類的代理(http://www.mojohaus.org/cobertura-maven-plugin/)然後您需要觸發sonarQube分析。用cobertura(重用報告)的結果或再次運行測試。在這裏,我通過我的jenkins傳遞給JaCoCo的參數-Dsonar.binaries = target/classes -Dsonar.junit.reportsPath = target/surefire-reports -Dsonar.jacoco.reportPath = target/coverage-reports/jacoco-ut.exec – drgn
謝謝@drgn!我不知道我需要給目標目錄作爲參數,因爲我有一個不同的項目,我不必給目標目錄。我能看到的唯一區別是,在不工作的項目中,有很多子項目,並且由於有很多子目錄。你認爲我必須將每個文件夾作爲聲納報告路徑嗎? –
這些子項目是否擁有自己的pom.xml文件? – drgn