android - Gradle - 无需运行 connectedCheck 的 Jacoco 代码覆盖率

标签 android unit-testing code-coverage jacoco

我使用的是 Android Studio 1.2.2 和 Gradle 插件 1.2.3。

我试图在不运行 gradlew connectedCheck 的情况下生成代码覆盖率报告,只是 gradlew test。我想避免连接设备或模拟器的需要,这样我就可以加快在 Jenkins 服务器上的构建速度。

到目前为止我能做的最好的事情就是在报告中包含单元测试执行数据,如下所述:Jacoco Code Coverage in android studio .这对于显示所有测试的结果很有用,但目前我只想运行单元测试(Junit4 和 Robolectric)。

有没有办法编辑 createDebugCoverageReport gradle 任务,使其不运行 connectedAndroidTest

谢谢。

最佳答案

我设法找到了解决方法。即,禁用 connectedAndroidTest 任务。

project.afterEvaluate {
    def append = "append=true"
    def destFile = "destfile=$buildDir/outputs/code-coverage/connected/coverage.ec"
    testDebug.jvmArgs "-javaagent:$buildDir/intermediates/jacoco/jacocoagent.jar=$append,$destFile"

    createDebugCoverageReport.dependsOn testDebug
    connectedAndroidTestDebug.enabled = false
}

因此,从提出的解决方案开始in this answer ,它将单元测试覆盖率添加到仪器测试覆盖率,我已经禁用了仪器测试任务。这允许我通过执行 createDebugCoverageReport 任务仅运行单元测试,而无需连接设备。

关于android - Gradle - 无需运行 connectedCheck 的 Jacoco 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31653216/

相关文章:

unit-testing - RxJava observable 已完成,但单元测试中未触发 doOnComplete 回调

c++ - 如何在命令行中使用 MS 代码覆盖工具?

.net - .NET 中用于个人项目的免费代码覆盖工具

java - 如何在第一次运行后永远跳过第二个 Activity ?

Android:如何阻止 Android 1.6+ 缩放图像

java - 在 JUnit 4 中重用测试实现?

c# - Rhino Mocks - 我们真的需要 stub 吗?

java - 在重复的布局上滚动 - Android

java - 等待传感器数据 android - 我们总是需要一个新线程吗?

java - 为什么 Cobertura 在通过 Eclipse 插件运行时报告覆盖率为 0%?