将coverage.ec文件上传到声纳Android

时间:2017-06-15 23:06:16

标签: java android android-gradle sonarqube sonarqube-scan

我有一个cover.ec文件生成并显示我的espresso UI测试的代码覆盖率。我也像在这里一样配置了声纳:

{{1}}

问题?在声纳中没有显示任何代码覆盖 - 没有,0%这真的很奇怪我在过去一周没有在网上找到任何东西我已经花了很长时间来清理互联网。有没有人知道发生了什么?

2 个答案:

答案 0 :(得分:1)

您必须指定测试结果,以便通过声纳处理您的承保范围。 另请注意,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
            // ...
        }
    }
}

答案 1 :(得分:0)

我明白了。我没有为我的reportPath提供* .ec,而是将其更改为“coverage.ec”。然后就出现了。谢谢你的帮助!