4

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

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

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

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

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

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

4

1 回答 1

3

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

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

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

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

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

于 2014-08-13T15:51:59.057 回答