我想在我的Android項目中設置sonarqube報告。我目前在顯示聲納UI中的所有測試類時遇到了問題,覆蓋率以百分比顯示,目前只有app/src/test/
的單元測試顯示爲單元測試。sonarqube與androidTest和測試covarage
我的項目有一個測試文件夾app/src/test/
其中包含單元測試,我有一個androidTest文件夾app/src/androidTest/
其中包含Android單元,集成和UI測試。當我通過gradle運行所有測試時,android-gradle插件生成build/jacoco/testDebugUnitTest.exec
和build/test-results/debug/TEST-*Test.xml
,其中包含測試文件夾中單元測試的jacoco結果和覆蓋率報告。另外android-gradle插件生成build/outputs/code-coverage/connected/coverage.ec
和build/outputs/androidTest-results/connected/TEST-*Test.xml
包含來自androidTest文件夾的結果和覆蓋率報告
在我的build.gradle中,我可以指定聲納插件的屬性。
sonarqube {
properties {
property "sonar.sources", "src/main/java,src/main/res"
property "sonar.tests", "src/test/java,src/androidTest/java"
property "sonar.java.coveragePlugin", "jacoco"
property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/testDebugUnitTest.exec"
property 'sonar.jacoco.itReportPath', "${project.buildDir}/outputs/code-coverage/connected/coverage.ec"
property "sonar.junit.reportsPath", "${project.buildDir}/test-results/debug" // path to junit reports
}
}
隨着sonar.junit.reportsPath
我可以指定XML報告發送到sonarqube服務器。當我將其更改爲build/outputs/androidTest-results/connected
時,儀表板上顯示爲單元測試的androidTest。有沒有辦法讓sonar插件在兩個目錄中查找或合併結果?
雖然這可能會在SonarQube測試列表中添加UI測試,但它不會增加覆蓋率或指示方法被覆蓋。任何解決方案? – Elias
@Elias如果您正在使用Jacoco進行儀器和代碼覆蓋,那麼您已經設置好了,因爲更新版本的Sonarqube會合並來自單元和儀器測試的Jacoco覆蓋數據。然而,我不知道這是可能的其他覆蓋插件。 –
我們在SonarQube v6上,我想這是最新的?我通過這些屬性: 財產 「sonar.java.coveragePlugin」, 「jacoco」 財產 「sonar.jacoco.reportPath」, 「構建/ jacoco/testProductionMinSdk19DebugUnitTest.exec」 // JUnit的覆蓋率報告 財產「sonar.junit。 reportsPath「,」build/test-results/productionMinSdk19Debug /「//路徑爲junit報告 屬性」sonar.android.lint.report「,」/build/outputs/lint-results-productionMinSdk19Debug.xml「//路徑爲lint報告 – Elias