【问题标题】:Ant/Emma Instrumenting Android SDKAnt/Emma 检测 Android SDK
【发布时间】:2012-08-22 17:24:51
【问题描述】:

我目前正在尝试测试 Android SDK/API,为此我创建了一个利用 API 中的 SQLite 类的应用程序以及运行该应用程序的测试。我一直在拼命寻找 SDK 的代码覆盖率,以便我可以分析我的测试并为我的项目获得一些实际结果。但是,我似乎找不到任何文档(甚至 Stack Overflow 问题)可以为我提供任何帮助。我一直在玩 EMMA(还有一段时间 Ant,虽然显然我的 Android 版本中的版本不够用,并且单独下载它对我来说并不顺利)。我之前找到了this 的问题,但我没有得到他们的解决方案。

谁能帮帮我?谢谢。

编辑:我尝试从前一个链接的链接中添加代码(它正在将代码添加到 EMMA 的 build.xml 和 ant.properties),但现在我什至不知道覆盖日志的存储位置,如果它甚至像我想的那样工作。

【问题讨论】:

    标签: android ant code-coverage emma


    【解决方案1】:

    我使用 EclEmma 在我的 Android 项目上运行代码覆盖。我的单元测试设置为使用Robolectric 运行。我没有使用 Ant 来管理我的 Android 版本,但让它与这些版本一起工作应该不难。

    【讨论】:

    • 两件事:1) 使用 EclEmma 是否让我覆盖了 Android 源类(即我正在使用的 SQLiteDatabase)而不仅仅是我的测试?我所做的全部目的是测试 Android API,所以我需要覆盖这些类。 2)我尝试使用 EclEmma,但我收到一个奇怪的错误:“转储覆盖数据时出错(代码 5013)。套接字已关闭”
    • 假设您有 Android SDK 的源代码附加到您的项目,是的,它应该。虽然我觉得你需要测试 Android 的代码有点奇怪。我不知道第二个问题是什么。
    • 我更新了,现在似乎可以工作了,但是我收到一个错误:“java.lang.NoClassDefFoundError: android/test/ActivityInstrumentationTestCase2”
    • 查了一些之后,我发现有人提到这可能是因为 Java 1.7 不支持 EclEmma(或者我认为相反),但我使用的是 1.6.0.33.. . 为了让它工作,我需要降级这么少吗?
    • 我使用常规 JUnit 进行 Android 测试,但看起来 Android 测试类(即 ActivityInstrumentationTestCase2`)不在您的类路径中。
    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2018-08-10
    • 1970-01-01
    相关资源
    最近更新 更多