【问题标题】:Code coverage for Android [duplicate]Android 的代码覆盖率 [重复]
【发布时间】:2011-09-09 10:22:20
【问题描述】:

可能重复:
Android test code coverage, Eclipse

看到没有关于如何在 Eclipse 中将 EMMA 用于 Android 应用程序的文档,真是令人沮丧。有没有人设法在 Eclipse 中为 Android 应用程序使用 EMMA?不检查整个 android 源代码并做所有的骇客?

【问题讨论】:

  • 我在 Eclipse 之外设置了它,但是对于将它集成到 Eclipse 中的 apk 构建步骤中,我认为您可能必须使用 android 源树中的 adt lib :( 我还没有找到一种方法来做到这一点。但是我发现通过 IDE 的交互式覆盖没有像运行具有覆盖分析的自动化测试那样有用(它是可跟踪的)。我通过 ant 来做这一切。如果它在这里有帮助,@ 987654322@

标签: android eclipse emma


【解决方案1】:

如果你有<path to test project>/build.xml 文件重命名它。

我能够通过从控制台执行以下操作来生成测试覆盖率报告:

<path to android tools>android update test-project -m <path to app project> -p <path to test project> + 回车,

cd <path to test project> + 回车,

ant emma debug install test + 回车,

在我的机器上,<path to android tools>/opt/android-sdk-linux/tools/ - 安装 android SDK 的文件夹。

这会生成<path to test project>/bin/coverage.html 文件。

如果您收到“错误的 JAVA_HOME”错误,请执行 gksu gedit /etc/environment + Enter,更正 JAVA_HOME,保存文件,注销或重新启动并重试。

来源:http://blog.rabidgremlin.com/2010/11/19/android-tips-generating-a-coverage-report-for-your-unit-tests/

【讨论】:

    【解决方案2】:

    我发现一些链接可能会有所帮助 http://blog.pboos.ch/2011/06/coverage-fo-android-tests/ 你也可以检查 How to use EMMA code coverage in android 希望对你有用

    【讨论】:

      【解决方案3】:

      这并不能直接回答你的问题,但我建议你看一下用 Robolectric 编写测试:http://pivotal.github.com/robolectric/

      使用 Robolectric,您可以编写在 JVM 而非 Delvik VM 中运行的测试。这意味着您几乎可以使用任何用于 JAVA 的代码覆盖工具。您可能需要稍微更改您的代码,以便您可以编写您的 Robolectric,而且您还没有开始破解 Robolectric。对我来说,这只是编写测试的更好方式。

      【讨论】:

        【解决方案4】:

        很遗憾,我认为 EMMA 不适用于通过 SDK 开发的应用。除非自从我上次阅读该主题以来情况发生了变化。这些工具是为与操作系统本身一起使用而设计的,因此据我所知,无法将其与您的 APK 一起使用。

        您可能会发现以下相关帖子很有用 - EMMA Code Coverage in Android

        【讨论】:

          猜你喜欢
          • 2018-04-16
          • 1970-01-01
          • 1970-01-01
          • 2016-02-28
          • 1970-01-01
          • 1970-01-01
          • 2012-06-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多