2017-06-15 47 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 
      // ... 
     } 
    } 
}