如何向 Android 应用程序提供 Jacoco 代理?

2024-04-10

我正在尝试使用 Jacoco 进行手动测试来获得代码覆盖率。我正在尝试使用离线仪器。http://www.eclemma.org/jacoco/trunk/doc/offline.html http://www.eclemma.org/jacoco/trunk/doc/offline.html

里面提到:配置文件:如果一个文件jacoco-agent.properties类路径上提供的选项将从该文件加载。

我的问题是如何提供这个?我在其他论坛上看到过jacoco-agent.properties需要与应用程序一起部署。

我尝试把jacoco-agent.properties在 res/raw 下,但它抱怨文件名中存在“-”。

我尝试将其放在根目录下,但没有任何效果。

我想知道如何设置\运行 jacoco 以便它使用jacoco-agent.properties?


好吧,至少对于 Ant 命令行构建来说,诀窍是把jacoco-agent.properties in the src目录,这使得它按原样打包到 APK 文件的根目录中,从那里似乎可以正确读取它(即我可以看到设置destfile属性对创建执行数据文件的位置有影响)。

然而,创建的jacoco.exec文件对我来说总是空的(就像也提到的here https://groups.google.com/d/msg/jacoco/9Atzd4Kq0NU/6FeYd_3jkL4J),可能是因为JaCoCo只写入执行数据在 JVM 终止时 http://www.eclemma.org/jacoco/trunk/doc/agent.html,但是当应用程序停止时,Android 的 Dalvik VM 不会终止。

我们目前解决这个问题的方法是显式调用

org.jacoco.agent.rt.RT.getAgent().getExecutionData(false)

并在我们的自定义测试运行程序完成时将返回的字节数组写入文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向 Android 应用程序提供 Jacoco 代理? 的相关文章