2011-06-06 185 views
24

可能重复:
Android test code coverage, Eclipse代码覆盖率为Android

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

+1

我把它安装Eclipse之外,但耶作为Eclipse中的APK建设步骤中集成它,我想你可能必须使用ADT LIB是android系统的源代码树: (我还没有找到办法做到这一点,但是我没有发现通过IDE进行交互式覆盖与使用覆盖率分析来运行自动化测试(这是可跟踪的)有帮助。我通过蚂蚁来做到这一点。如果它在这里有所帮助,http://stackoverflow.com/questions/4073681/is-it-possible-to-simply-compile-an-emma-instrumented-apk-using-android-build-xml – 2011-06-17 08:09:25

回答

2

如果你有<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/在我的机器上 - 安装SDK SDK的文件夹。

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

如果你得到“错误JAVA_HOME”错误执行gksu gedit /etc/environment + 输入,正确JAVA_HOME,保存文件,注销或重新启动,然后再试一次。

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

1

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

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

2

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

随着Robolectric,你可以写你的测试里面JVM而不是Delvik VM上运行。这意味着你几乎可以使用任何代码覆盖工具来使用JAVA。你可能需要稍微改变一下你的代码,这样你才能写出你的Robolectric,并且你也没有开始对Robolectric进行黑客攻击。对我来说,这只是写测试的一种更好的方法。