- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个库项目,在模块之间有一些奇怪的配置。由于一些特定的限制,我现在有 3 个模块:core(主模块)、core-test(我的单元测试所在的位置)和一个 core-app (我的 Espresso 测试所在的位置)。
此时,我需要生成一份覆盖率报告,以使其在 CI 服务器上可用。使用 additionalSourceDirs
和 additionalClassDirs
等属性,我创建了一个自定义任务,使 core 类能够显示在生成的 jacoco.exec 中
文件。但是对于 Espresso 测试,我找不到自定义它的方法,因为 Android Gradle 插件上的 jacoco 配置节点似乎有 no options for anything .为特定构建配置启用 testCoverageEnabled
有效,它生成覆盖率,但仅针对 core-app 中的类(我知道,常规 项目,这是预期的行为),因此 coverage.ec
文件没有我的其他类的执行数据。
有人知道一种方法可以将更多的类/源添加到集成测试的覆盖任务中吗? (可能以某种方式扩展 AndroidJUnitRunner
或通过 Groovy 更改任务本身?)
最佳答案
您需要在 build.gradle 中添加以下内容:
apply plugin: 'jacoco'
jacoco {
toolVersion "0.7.5.201505241946"
}
同样在 buildTypes 中:
debug {
testCoverageEnabled = true
运行
gradle tasks
你会看到一个名为(如果你正在使用调试构建覆盖)的任务
createDebugCoverageReport
运行
gradle createDebugCoverageReport
您将在以下文件夹中看到 coverage.ec
$build_dir/outputs/code-coverage/connected/flavors/debug/coverage.ec
您使用的是哪种设备和哪种操作系统?某些具有特定操作系统的设备会产生空覆盖。ec 请分享有关您正在使用的操作系统和设备的更多信息?
关于android - 如何在 Android 中为 Espresso 测试自定义 Jacoco,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34206564/
我是一名优秀的程序员,十分优秀!