Android的代码覆盖率

可能重复:
Eclipsetesting代码覆盖率

如果在Eclipse中没有关于如何使用EMMA for Android应用程序的文档,那真令人沮丧。 有没有人设法在eclipse中与EMMA一起使用Android应用程序? 没有检查出整个android源代码,并做所有的hackery?

  • 解读多核性能跟踪(Eclipse / Android)
  • 使用ADT 20将Maven Android Android项目导入Eclipse时出错
  • 重构软件包名称打破了整个应用程序
  • Android导出提供“转换为Dalvik格式失败的错误1”
  • 在ADT上运行构build器“Android资源pipe理器”时出错
  • 在Eclipse中添加应用程序启动快捷键
  • Eclipse LogCat仅显示每条消息的第一个字母
  • 在Eclipse和Android应用程序中调试时,无法在匿名类中看到最终variables内容
  • 如果你有<path to test project>/build.xml文件重命名它。

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

    <path to android tools>android update test-project -m <path to app project> -p <path to test project> + Enter

    cd <path to test project> + Enter

    ant emma debug install test + 回车

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

    这生成了<path to test project>/bin/coverage.html文件的<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/

    这不直接回答你的问题,但我build议你看一下Robolectric的写作testing: http ://pivotal.github.com/robolectric/

    使用Robolectric,您可以编写运行在JVM内部而不是Delvik VM的testing。 这意味着你可以使用几乎所有的代码覆盖工具的JAVA。 你可能不得不改变你的代码,所以你可以写你的Robolectric,也没有开始黑客Robolectric。 对我来说,这只是写testing的一个更好的方法。

    不幸的是,我相信EMMA不适用于通过SDK开发的应用程序。 这是自从我上次读到这个话题以来事情没有改变。 这些工具是为了与操作系统本身一起使用而devise的,因此,我无法将其与您所知道的APK一起使用。

    您可能会发现以下相关的post很有用 – Android中的EMMA代码覆盖 。