首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Android获得代码覆盖率?

如何使用Android获得代码覆盖率?
EN

Stack Overflow用户
提问于 2013-09-08 11:14:26
回答 7查看 77.7K关注 0票数 75

我正在使用Android开发应用程序。

我能运行测试代码。

但是,我不知道如何在android演播室中获得代码覆盖。

我已经看到了以下链接.

Android Gradle代码覆盖率

但我等不及升级到支持艾玛的0.6版了。

项目配置如下。

主代码

MyProject/AppName/src/main/java/mypackage/MyClass.java

测试代码

MyProject/AppName/src/instrumentTest/java/mypackage/test/MyClassTest.java

项目配置

MyProject

├─build.gradle

└─应用程序名

    ├─build.gradle

─/T1597-1989/2003/2003/2003/2003/2003/2002/2003/2003/2002/2003

中转站-特别是中转站-├─主干线

.=‘3’>中成业│.

商品

        │  │      └─MyClass.java

 /T1581-1998商品价格、│、商品价格、商品价格、价格等

        │  └─AndroidManifest.xml

─/T1584-1993└─工具检验

─/T1597-1997用于工业生产的专用产品

自愿性

商业、商业、金融、商业、金融、金融等行业的商品、金融、金融、商业、金融等行业的商品、金融、金融等行业的商品、商品、金融等行业的商品、商品、金融等行业的

                        └─MyClassTest.java

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2015-05-11 21:08:52

使用新的AndroidStudio1.2,您可以运行单元测试,并在IDE中看到覆盖范围。

首先,您需要在IDE中运行单元测试。(如果您已经可以,那么跳过这一步)

这个指南演示会帮你的。

其次,您需要创建一个JUnit运行配置

在这个配置中,您可以选择

  • 测试种类:“全包”
  • 包:测试所在的包,例如:"com.myapp.tests“
  • 搜索测试:跨模块依赖项的(可能是设置的差异)
  • VM -options: -ea
  • 工作目录:项目的目录
  • 使用mod:的类路径选择模块

如果您在创建JUnit运行配置时遇到任何问题,请访问指南以获得帮助。

最后,在最新的Android中,您应该能够通过单击“run”按钮来运行您的JUnit运行配置。

在AndroidStudio2.1.3中,is标签Run Unit tests with Coverage中的Unit test是测试配置的名称,如下所示:

票数 67
EN

Stack Overflow用户

发布于 2020-04-09 15:37:25

如果您想获得测试覆盖率(用于检测测试-当“运行带有覆盖率的应用程序”未启用时):

把这个放到你的顶级build.gradle

代码语言:javascript
复制
buildscript{    
       ext.jacocoVersion = '0.8.2'

       ...

        dependencies {
            classpath "org.jacoco:org.jacoco.core:$jacocoVersion"
        }
}

进入应用程序级别的build.gradle中。

代码语言:javascript
复制
 ...

    apply plugin: 'jacoco'

    jacoco {
        toolVersion = "$jacocoVersion"
    }

    tasks.withType(Test) {
        jacoco.includeNoLocationClasses = true
    }

    task jacocoTestReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) {

        reports {
            xml.enabled = true
            html.enabled = true
        }

        def fileFilter = [
                '**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*', '**/*$[0-9].*'
        ]
        def debugTree = fileTree(dir: "$project.buildDir/tmp/kotlin-classes/debug", excludes: fileFilter)
        def mainSrc = "$project.projectDir/src/main/kotlin"

        sourceDirectories = files([mainSrc])
        classDirectories = files([debugTree])
        executionData = fileTree(dir: project.buildDir, includes: [
                'jacoco/testDebugUnitTest.exec', 'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'
        ])
    }


   android {

        ...

        buildTypes {
            debug {
                testCoverageEnabled true
        }
    }

那么你应该写你的测试,测试必须通过。如果您确定您的测试通过了,请将该代码写入终端:

代码语言:javascript
复制
gradlew connectedCheck

它会运行你的测试。如果一切都做对了,您应该在app -> build -> reports ->覆盖率中获得一个报告文件。您必须打开index.html文件。(右键单击->在浏览器中打开的文件,->选择浏览器)

你应该得到一些类似的东西。

它在我的项目中起作用。也许有一个更好更容易的解决方案。如果我忘了在这里写什么,请写评论。

票数 4
EN

Stack Overflow用户

发布于 2019-10-15 16:48:33

在模块testCoverage文件中启用build.gradle

代码语言:javascript
复制
buildTypes {
        debug {
            testCoverageEnabled true
        }
    }

然后

右键单击测试-> java包并选择Run Tests in Java with Coverage以运行所有代码覆盖范围的测试,或右键单击特定的测试类并单击Run SampleTest with Coverage

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18683022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档