【问题标题】:JaCoCo Android Coverage with AntJaCoCo Android 覆盖与 Ant
【发布时间】:2013-12-27 22:34:54
【问题描述】:

我一直在做一个项目,我想开始使用 JaCoCo。我想知道您是否可以帮助我解决我一直遇到的问题。该项目使用 Ant 来自动化构建和测试,并且有一个 Android 组件。我一直在尝试将 JaCoCo 覆盖报告集成到项目中,但在 Android 方面没有取得太大进展。

不幸的是,Ant tasks 的文档并没有那么详细,off-line example 只是最基本的情况。我找到了examples of how to use Maven,但没有找到 Ant。我发现 vague references 是因为 JaCoCO 在 Android 上确实可以工作,但没有解释它是如何工作的。

我能够通过将该任务放在 Android 项目文件夹中的 -post-compile 目标文件中来进行离线检测。但是,我不确定如何正确配置 java 代理以运行和检索 .exec 文件以用于生成报告。

  • java代理应该在主项目的libs目录下还是测试项目下?
  • 我应该将jacoco-agent.properties 放在项目的libs 文件夹中吗?或者有没有更好的方法来配置代理?
  • 将输出写入主机上的文件的最简单方法是什么? TCP 连接是否比转储到设备上的文件更好,然后可以从模拟器中复制出来?

【问题讨论】:

    标签: java android ant jacoco


    【解决方案1】:

    好的,根据 eclemma/jacoco 的这个问题,你不需要 tcp 连接...

    issue44 jacoco/eclemma

    忽略 jacoco-agent.properties,因为无论如何您都在 ant 任务中提供了相同的属性,因此不需要像我读到的 ant 任务参数那样的属性文件

    【讨论】:

    • 问题是这些测试必须在 Android 模拟器中运行,而不是在 JVM 中。 Android 构建脚本使用调用adbexec 任务启动测试。这不能在 jacoco:coverage 任务内完成。如果您理解这一点,您能否提供一个示例来说明您打算如何启动测试和配置属性?
    • 我最终放弃了模拟器并使用 Robolectric,以便可以在标准 JVM 中运行它。 Robolectric 是经过评估的,但一旦你掌握了它的窍门,你就可以接受并运行你的报道。运行速度更快,更容易加载到声纳之类的东西上。
    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2012-02-10
    • 2013-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多