Gradle - 没有 运行 connectedCheck 的 Jacoco 代码覆盖率
Gradle - Jacoco code coverage without running connectedCheck
我正在使用 Android Studio 1.2.2 和 Gradle 插件 1.2.3。
我正在尝试在 运行 宁 gradlew connectedCheck
的情况下生成代码覆盖率报告,只是 gradlew test
。我想避免连接设备或模拟器的需要,这样我就可以加快在 Jenkins 服务器上的构建速度。
到目前为止我能做的最好的事情就是在报告中包含单元测试执行数据,如下所述:。这对于显示所有测试的结果很有用,但目前我只想 运行 单元测试(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
}
因此,从提议的解决方案 开始,我已禁用了仪器测试任务,该解决方案将单元测试覆盖率添加到仪器测试覆盖率。这允许我通过执行 createDebugCoverageReport
任务 运行 仅进行单元测试,而无需连接设备。
有一个开源插件可以做到这一点:jacoco-android-gradle-plugin。
它基本上为每个变体运行单元测试并生成覆盖率报告。 project README.
中记录了用法
我正在使用 Android Studio 1.2.2 和 Gradle 插件 1.2.3。
我正在尝试在 运行 宁 gradlew connectedCheck
的情况下生成代码覆盖率报告,只是 gradlew test
。我想避免连接设备或模拟器的需要,这样我就可以加快在 Jenkins 服务器上的构建速度。
到目前为止我能做的最好的事情就是在报告中包含单元测试执行数据,如下所述:
有没有办法编辑 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
}
因此,从提议的解决方案 createDebugCoverageReport
任务 运行 仅进行单元测试,而无需连接设备。
有一个开源插件可以做到这一点:jacoco-android-gradle-plugin。
它基本上为每个变体运行单元测试并生成覆盖率报告。 project README.
中记录了用法