gpt4 book ai didi

android - 将 jacoco-agent.properties 打包到 APK 中以便读取?

转载 作者:行者123 更新时间:2023-12-05 07:52:49 28 4
gpt4 key购买 nike

这是我的情况:

背景

  • 我正在调查我们的 Android 应用程序的代码覆盖率。该应用是使用 Gradle 和 Android Studio 构建的。
  • 我在两种情况下需要代码覆盖率报告:在手动测试期间,以及在使用我们相当大的 Appium 套件构建的自动化测试期间。
  • 我需要快速进行概念验证(不是总是这样吗?)所以我没有机会进行彻底的研发。所以请原谅我表现出的任何无知:)
  • 我可以访问应用源代码,但对移动部分知之甚少。
  • 我调查了 JaCoCo 和 Emma。这个问题与 JaCoCo 有关。
  • 鉴于我们需要覆盖 Appium 和手动测试,我相信使用 JaCoCo 进行离线检测是我所需要的。

取得的进展

  • 我用了the JaCoCo plugin pagethe Android Tools page并且可以正确配置 build.gradle。
  • 我已验证这些类(存在于 build\intermediates\classes 中)已使用 JaCoCo 进行检测,并打包在 APK 中。
  • 我根据 this SO discussion 写了一个 BroadCastReceiver ,将接收“结束报道”广播。

问题

当我手动运行应用程序时,我一直在 logcat 中看到错误 W/System.err: java.io.FileNotFoundException:/jacoco.exec: 打开失败:EROFS(只读文件系统)

来自 this SO questionthe JaCoCo docs我知道 Jacoco 需要知道在哪里存储 jacoco.exec 文件 - 我需要打包一个 jacoco-agent.properties (包含一个 destfile 属性) APK。

我尝试将 jacoco-agent.properties 放入 assets - 它被正确打包到 APK 中,但似乎没有任何效果(即 Jacoco 像往常一样失败)我尝试将其放入 res - 它没有打包到 APK 中。我尝试了 res/raw 并遇到了有关文件名中破折号的错误,如 this SO question .

我已无计可施,非常感谢您的帮助。如何使用我的 Gradle 构建将 jacoco-agent.properties 打包到 APK 中,以便 JaCoCo 读取它?

相关问题

this SO question ,有 2013 年的答案,它适用于 Ant,而不是 Gradle。

最佳答案

我不熟悉执行 Jacoco 工作的要求,但您可以很容易地用 apk 打包文件。下面的代码会将 jacoco-agent.properties 放在 apk 包的根目录下。

对您的应用模块的 build.gradle 进行以下更改:

android {
...
sourceSets {
main {
resources.includes = [ '**/jacoco-agent.properties' ]
}
}
}

关于android - 将 jacoco-agent.properties 打包到 APK 中以便读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33182667/

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