如何在Android中定制用于浓咖啡测试的Jacoco

如何在Android中定制用于浓咖啡测试的Jacoco,android,gradle,code-coverage,android-espresso,jacoco,Android,Gradle,Code Coverage,Android Espresso,Jacoco,我有一个库项目,模块之间有一些奇怪的配置。由于一些特定的限制,我现在有3个模块:核心(主模块)、核心测试(我的单元测试在哪里)和一个核心应用程序(我的浓缩咖啡测试在哪里) 此时,我需要生成一个覆盖率报告,以使其在我们的CI服务器上可用。使用诸如additionalSourceDirs和additionalClassDirs之类的属性,我创建了一个自定义任务,用于在生成的jacoco.exec文件中显示核心类。但是对于浓缩咖啡测试,我无法找到一种定制的方法,因为Android Gradle插件上的

我有一个库项目,模块之间有一些奇怪的配置。由于一些特定的限制,我现在有3个模块:核心(主模块)、核心测试(我的单元测试在哪里)和一个核心应用程序(我的浓缩咖啡测试在哪里)

此时,我需要生成一个覆盖率报告,以使其在我们的CI服务器上可用。使用诸如
additionalSourceDirs
additionalClassDirs
之类的属性,我创建了一个自定义任务,用于在生成的
jacoco.exec
文件中显示核心类。但是对于浓缩咖啡测试,我无法找到一种定制的方法,因为Android Gradle插件上的jacoco配置节点似乎有。为特定的构建配置启用
testCoverageEnabled
,它会生成覆盖率,但只会为核心应用程序中的类生成覆盖率(我知道,在常规项目中,这是预期的行为),因此
coverage.ec
文件没有其他类的执行数据


有人知道为集成测试的覆盖率任务添加更多类/源的方法吗?(可能以某种方式扩展AndroidJUnitRunner,或者通过Groovy更改任务本身?

您需要在build.gradle中添加以下内容:

apply plugin: 'jacoco'
jacoco {
    toolVersion "0.7.5.201505241946"
}
同样在BuildType中:

debug {
    testCoverageEnabled = true

您将看到一个名为的任务(如果您正在使用debug build进行覆盖)

您将在下面的文件夹中看到coverage.ec

$build_dir/outputs/code-coverage/connected/flavors/debug/coverage.ec

您正在使用的设备和操作系统是什么?某些具有特定操作系统的设备会产生空覆盖率。ec请分享有关操作系统和您正在使用的设备的更多信息?

您可以发布您的构建吗。gradle?嘿,我基本上处于完全相同的情况。我知道这很古老,但你有没有机会分享你最终为解决这个问题所做的事情?谢谢
createDebugCoverageReport
gradle createDebugCoverageReport
$build_dir/outputs/code-coverage/connected/flavors/debug/coverage.ec