2017-06-15 69 views
0

我有一個coverage.ec文件,它會生成並顯示我的espresso UI測試的代碼覆蓋率。我也有像gradle這樣的聲納配置:將coverage.ec文件上傳到聲納Android

sonarqube { 
properties { 
    property "sonar.projectName", "Android 9" 
    property "sonar.projectKey", "org.sonarqube:Android9" 

    property "sonar.host.url", "http://localhost:9000" 
    property "sonar.username", "admin" 
    property "sonar.password", "password" 

    property "sonar.projectVersion", "5" 

    property "sonar.java.source", "7" 

    property "sonar.android.lint.report", "build/outputs/lint-results.xml" 

    property "sonar.sourceEncoding","UTF-8" 
    property "sonar.sources","src/main/java" 
    property "sonar.exclusions","build/**,**/*.png" 
    property "sonar.test.exclusions", "" 
    property "sonar.binaries", "build/classes" 
    property "sonar.jacoco.reportPath","build/jacoco/testDevDebugUnitTest.exec" 
    property "sonar.tests", "src/androidTest/java" 
    //property "sonar.import_unknown_files", true 

    //property "sonar.android.lint.report", "./build/outputs/lint-results.xml" 

    property "sonar.jacoco.itReportPath", "build/outputs/code-coverage/connected/flavors/NORMAL/*.ec" 
}} 

問題?根本沒有任何代碼覆蓋率在聲納中顯示 - 沒有,0%,這真的很奇怪,我在過去的一週內沒有發現任何網上的東西,我花了清理互聯網。有誰知道發生了什麼事?

+0

您在服務器上使用哪種版本的聲吶? sonar.jacoco.itReportPath已根據https://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project#CodeCoveragebyIntegrationTestsforJavaProject-Usage過時 –

回答

0

我想通了。我的reportPath沒有* .ec,而是將其更改爲「coverage.ec」。然後它出現了。謝謝你們的幫助!

0

您必須指定測試結果以使您的覆蓋範圍由聲納處理。 請注意sonar.jacoco.itReportPath已過時。現在所有的覆蓋文件都是用sonar.jacoco.reportPaths屬性指定的。

您不必手動指定源目錄。請參閱androidTest屬性。

下面是具有兩個測試(如Robolectric)和android測試(如Espresso)的項目的配置。

afterEvaluate { 
    def flavor = "DEV" 
    def variant = "devDebug" 
    def testTaskName = "test${variant.capitalize()}UnitTest" 

    // output both android and host test results to single directory 
    def junitReportsPath = "build/outputs/androidTest-results/connected/flavors/$flavor/" 
    project.tasks[testTaskName].reports.junitXml.destination = junitReportsPath 

    sonarqube { 
     // you don't have to specify these manually as android sonar plugin handles it 
     // as soon as you specify androidVariant 
     // property "sonar.sources","src/main/java" 
     // property "sonar.tests", "src/androidTest/java" 
     androidVariant variant 
     properties { 
      property "sonar.jacoco.reportPaths", 
        ["build/jacoco/${testTaskName}.exec", 
        "build/outputs/code-coverage/connected/flavors/$flavor/*.ec"] 

      property "sonar.junit.reportsPath", junitReportsPath 

      // other settings 
      // ... 
     } 
    } 
}