有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java上传覆盖率。ec文件到sonar Android

我有保险。生成的ec文件,显示我的浓缩咖啡UI测试的代码覆盖率。我还在gradle中配置了声纳,如下所示:

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.安卓.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/安卓Test/java"
    //property "sonar.import_unknown_files", true

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

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

有问题吗?sonar中根本没有显示代码覆盖率-没有,0%,这真的很奇怪,在过去的一周里,我一直在网上搜索,没有发现任何东西。有人知道发生了什么事吗


共 (2) 个答案

  1. # 1 楼答案

    我想出来了。而不是有*。对于我的reportPath,我将其更改为“coverage.ec”。然后它出现了。谢谢你们的帮助

  2. # 2 楼答案

    你必须指定测试结果,让声纳处理你的覆盖范围。 还请注意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
                // ...
            }
        }
    }