gpt4 book ai didi

android - 如何在 Android 中为 Espresso 测试自定义 Jacoco

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:39 26 4
gpt4 key购买 nike

我有一个库项目,在模块之间有一些奇怪的配置。由于一些特定的限制,我现在有 3 个模块:core(主模块)、core-test(我的单元测试所在的位置)和一个 core-app (我的 Espresso 测试所在的位置)。

此时,我需要生成一份覆盖率报告,以使其在 CI 服务器上可用。使用 additionalSourceDirsadditionalClassDirs 等属性,我创建了一个自定义任务,使 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com