2017-06-15 6 views
0

私はエスプレッソUIテストのコードカバレッジを生成して表示するcoverage.ecファイルを持っています。私もソニーのようにグラデルで設定しています:coverage.ecファイルをソナーにアップロードする

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%は本当に奇妙で、私はインターネットを掃除するのに費やした過去1週間は何もオンラインでは見つかりませんでした。誰が何が起こっているか考えているのですか?

+0

あなたのサーバーではどのバージョンのソナーを使用していますか? sonar.jacoco.itReportPathはhttps://docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project#CodeCoveragebyIntegrationJavaProject-Usageに従って使用期限が切れています –

答えて

0

私はそれを理解しました。 reportPathに* .ecを付ける代わりに、 "coverage.ec"に変更しました。そしてそれが現れた。助けてくれてありがとう!

0

あなたのカバレッジをソナーが処理するようにテスト結果を指定する必要があります。 sonar.jacoco.itReportPathは古くなっていますのでご注意ください。現在、すべてのカバレッジファイルはsonar.jacoco.reportPathsプロパティで指定されています。

ソースディレクトリも手動で指定する必要はありません。 androidTestプロパティを参照してください。

Robolectricのようなテストと(エスプレッソのような)アンドロイドテストの両方を持つプロジェクトの設定は次のとおりです。

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 
      // ... 
     } 
    } 
} 
関連する問題