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

时间:2013-10-11 20:56:43

标签: android maven jacoco

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

在那里提到: 配置文件:如果在类路径上提供了文件jacoco-agent.properties,则会从此文件加载选项。

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

但是,创建的jacoco.exec文件对我来说总是空的(也提到了here),可能是因为JaCoCo只写了执行数据at JVM termination,但Android的Dalvik当应用程序停止时,VM不会终止。

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

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

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