我使用的是 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/