相关疑难解决方法(0)

如何使用Android Studio获取代码覆盖率?

我正在使用Android Studio开发应用程序.
我能够运行测试代码.
但是,我不知道如何在android studio中获得代码覆盖率.

我已经看到以下链接.
Android Gradle Code Coverage
但我迫不及待地想要更新到支持emma的v0.6.

项目配置如下.

主要代码
MyProject/AppName/src/main/java/mypackage/MyClass.java

测试代码
MyProject的/ AppName的/ src目录/ instrumentTest/JAVA/mypackage的/测试/ MyClassTest.java

项目配置
MyProject的
├─build.gradle
└─AppName
    ├─build.gradle
    └─src
        ├─main
        │├─java
        ││└─mypackage
        ││└─MyClass.java
        │├─res
        │└─AndroidManifest.xml
        └─ instrumentTest
            └─java
                └─mypackage
                    └─test
                        └─MyClassTest.java

android code-coverage gradle android-studio

65
推荐指数
3
解决办法
5万
查看次数

Jacoco和Unit使用android-gradle-plugin> = 1.1测试代码覆盖率

我最近开始android-gradle-plugin在我的一个项目中集成1.1.0.该项目用于robolectric 2.4运行单元测试.

这是一个具有非常复杂依赖关系的多模块项目(某些模块依赖于其他模块).像这样的东西:

--> application-module (dependsOn: module1, module2, module-core)
    --> module1 (dependsOn: module-core)
    --> module2 (dependsOn: module-core)
    --> module-core (dependsOn: module3, module4)
        --> module3 (library dependencies)
        --> module4 (library dependencies)
Run Code Online (Sandbox Code Playgroud)

有关更清晰的图片,请参阅jacoco-example项目.

我试图集成JaCoCo来生成单元测试的报告,但在我看来,它只运行androidTests基本上是仪器测试.

经过一些谷歌搜索后,我遇到了一些关于GitHub和其他文章的项目,但他们主要关注的是以前的版本,android-gradle-plugin或者正在使用其他第三方插件android-unit-test ,例如这里.

可能是我失去了谷歌的能力.但有人能指出我可以找到一些关于android gradle插件中的新内容以及如何仅针对单元测试运行jacoco任务的文档吗?

UPDATE

采用了nenick的例子中的脚本:

apply plugin: "jacoco"

configurations {
    jacocoReport
}

task jacocoReport(dependsOn: 'testDebug') << {
    ant {
        taskdef(name:'jacocoreport',
                classname: 'org.jacoco.ant.ReportTask',
                classpath: configurations.jacocoReport.asPath)

        mkdir dir: "${buildDir}/test-coverage-report"
        mkdir dir: "${buildDir}/reports/jacoco/test/"

        jacocoreport …
Run Code Online (Sandbox Code Playgroud)

android unit-testing jacoco android-gradle-plugin

36
推荐指数
2
解决办法
2万
查看次数

Android Studio中的Jacoco代码覆盖范围

我一直试图在一段时间内安静地进行Jacoco测试覆盖.我在这些主题中尝试了几种可能的解决方案:

使用JaCoCo Gradle插件的Android测试代码覆盖率

如何使用Android gradle插件0.10.0或更高版本获取jacoco覆盖率报告?

我正在使用genymotion在一个emulatated设备中运行测试.这是我添加到build.gradle的内容:

apply plugin: 'jacoco'

android{       
    jacoco {
        version "0.7.1.201405082137"
    }        
    buildTypes{
        debug{
                    testCoverageEnabled = true
        }
    }
}

jacoco {
    toolVersion "0.7.1.201405082137"
}
Run Code Online (Sandbox Code Playgroud)

要运行它,我会使用类似的东西

./gradlew clean
./gradlew createFLAVOR_NAMEDebugCoverageReport
Run Code Online (Sandbox Code Playgroud)

相关生成的文件/文件夹是:

/build/intermediates/coverage-instrumented-classes
/build/intermediates/jacoco
/build/outputs/code-coverage/connected/flavors/MyFlavor/coverage.ec
Run Code Online (Sandbox Code Playgroud)

但是,@ build/reports/jacoco/test/html/index.html或任何html页面/代码覆盖率报告@/build/outputs都没有.

我还尝试创建一个专门的任务来构建一个覆盖率报告:

def coverageSourceDirs = [
    'src/main/java',
]

task jacocoTestReport(type: JacocoReport, dependsOn: "connectedAndroidTestFLAVOR_NAMEDebug") {
    group = "Reporting"
    description = "Generate Jacoco coverage reports after running tests."
    reports {
        xml.enabled = true
        html.enabled = true
    }
    classDirectories = fileTree(
        dir: './build/intermediates/classes/debug',
        excludes: ['**/R*.class', …
Run Code Online (Sandbox Code Playgroud)

android code-coverage gradle jacoco test-coverage

17
推荐指数
2
解决办法
8795
查看次数

如何在Android Studio中使用Gradle Plugin生成jacoco.exec文件?

我已经阅读了一些与相关的内容,这个这个,但我找不到答案.在Android Studio中使用Gradle Plugin,我无法生成文件jacoco.exec(任何子文件夹中都没有*.exec).

我必须在build.gradle文件中设置什么才能生成此文件?

注意:请记住,我正在使用Gradle插件(不同)和Android Studio.

android gradle jacoco android-studio

5
推荐指数
1
解决办法
1823
查看次数

Android:使用Android Studio的代码覆盖率工具

我已经为iOS编写了测试用例,我们有

XcodeCoverage

找出代码覆盖率.现在,我希望为我的android测试用例做同样的事情.有没有与Android Studio兼容的工具?
任何建议/参考链接都会有所帮助.

android unit-testing android-studio test-coverage

1
推荐指数
1
解决办法
4424
查看次数