当前位置: 首页 > 知识库问答 >
问题:

代码覆盖到声纳从Android测试使用gradle

凌钊
2023-03-14

我必须在我的android测试中设置代码覆盖报告,然后在声纳中发布它们。我读到没有工具和插件可以做到这一点。我正在使用gradle脚本,我尝试Jacoco插件,cobertura,但没有结果。有什么办法解决吗?此外,我试图做像这里Gradle Jacoco代码覆盖-然后发布/显示在詹金斯

共有1个答案

卓云
2023-03-14

带有代码覆盖和声纳的build.gradle示例

apply plugin: 'com.android.application'

    android {

        compileSdkVersion 20
        buildToolsVersion '20.0.0'
        defaultConfig {
            applicationId 'com.example.coverage'
            minSdkVersion 11
            targetSdkVersion 19
            versionCode 1
            versionName '1.0'
            testHandleProfiling true
            testFunctionalTest true

        }
        buildTypes {
            debug {
                testCoverageEnabled true
            }
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {

            apply plugin: 'sonar-runner'
        }

        packagingOptions {
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/dependencies.txt'
            exclude 'META-INF/LGPL2.1'
            exclude 'META-INF/services/javax.annotation.processing.Processor'
            exclude 'LICENSE.txt'
        }
    }

    sonarRunner {

        sonarProperties {

            property "sonar.projectKey", "coverage-example"
            property "sonar.projectName", "Coverage Example"
            property "sonar.projectVersion", "1.0"

            property "sonar.sources", "src/main/java"
            property "sonar.binaries", "build"
            property "sonar.test", "src/androidTest/java"

            property "sonar.profile", "Sonar way"
            property "sonar.language", "java"
            property "sonar.sourceEncoding", "UTF-8"

            property "sonar.dynamicAnalysis", "reuseReports"

            property "sonar.junit.reportsPath", "build/outputs/reports/coverage/debug"
            property "sonar.cobertura.reportPath", "build/outputs/reports/coverage/debug/cobertura.xml"
            property "sonar.java.coveragePlugin", "cobertura"

            property "sonar.host.url", "http://localhost:9099"
        }
    }

gradlew clean AssembledBug createDebugCoverageReport

应用程序/构建/输出/报告/覆盖率/调试/报告。xml

在github上链接脚本

python cover2cover.py app/build/outputs/reports/coverage/debug/report.xml src/main/java > app/build/outputs/reports/coverage/debug/cobertura.xml && cp app/build/outputs/androidTest-results/connected/* app/build/outputs/reports/coverage/debug/
gradlew sonarRunner
 类似资料:
  • 有人知道是否有可能(以及如何)在Postman集成测试执行中生成代码覆盖率吗? 我们有基于Postman的集成测试,并通过Windows shell命令在Jenkins上执行。令人沮丧的是,我们不知道如何生成代码覆盖报告并将其发布到SonarQube中。 提前万分感谢!

  • 我正在通过Ant运行声纳任务,由RHEL环境中的Jenkins触发。我成功地使用Cobertura进行Junit代码复盖,并使用Surefire进行报告。声纳进口Surefire报告良好。 我很困惑如何真正做到这一点。网页http://www.sonarsource.org/measure-coveration-by-integration-tests-with-sonar-updated/参考了

  • 我正在使用Jacoco插件使用jenkins获得代码覆盖率。我能够看到代码覆盖率。当我尝试使用相同的jacoco.exec文件来生成声纳代码覆盖率时,它显示:由于没有类文件,无法对项目覆盖率进行JaCoCo分析。我使用以下声纳属性: 我正在使用SonarQube 5.3

  • 我正在尝试在Android Studio中使用Gradle为一个新的空Android项目获得代码覆盖率。 我设法让声纳工作,但我似乎不能解决代码覆盖。(以前从未做过类似的事情) 我看过JaCoCo,但它与Android不兼容。科伯图拉也是如此。艾玛似乎还没和格雷迪一起工作。 我正在使用Gradle 1.11、Android Studio 0.5.1和Sonar Runner 2.3

  • 我正在使用: 声纳v.3.2(有jacoco) Maven 3.0.4 跟随”http://johndobie.blogspot.in/2012/05/easy-unit-and-integration-code-coverage.html#comment-表格“以获得单元的单独代码覆盖率 日志显示如下: POM文件:

  • 我有一个基本的maven多模块,父模块是POM,其子模块是domain、service和Web。 我已经在pom父级中添加了jacoco插件和所需的配置,以便将测试覆盖率报告附加到一个Sonar很容易找到的文件中。 我的问题是,Sonar只显示第一个模块的测试覆盖范围(是domain)(即使我用编辑器打开文件,看到其他模块的类名被追加在其中)。 这种配置会有什么问题? 为了它的价值,声纳分析被称为