Android的代码覆盖率

可能重复:
Eclipsetesting代码覆盖率

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

Solutions Collecting From Web of "Android的代码覆盖率"

如果你有<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代码覆盖 。