2010-07-19 186 views
17

有没有一种方法可以通过一种方式来运行Eclipse中的Android单元测试,以检测代码并测量测试代码覆盖率?Android测试代码覆盖率,Eclipse

我正在寻找一种简单的方法来找出我的应用程序的哪些部分尚未测试,修复测试用例并查看是否有帮助。

回答

2
+3

虽然这可能在理论上回答这个问题,[这将是首选le](http://meta.stackexchange.com/q/8259)在这里包含答案的基本部分,并提供参考链接。 – 2012-01-20 11:42:14

+0

这个链接现在被打破。 – twiz 2014-04-05 00:53:37

+0

更新了链接 – avh 2014-04-05 19:36:24

8

免责声明:我是一个Atlassian的

的Atlassian的三叶草工具还支持Android的 - 它测量应用程序代码和单元测试的覆盖率。虽然在alpha阶段,它工作得很好 - 它适用于Eclipse 3.6.2及更高版本。

如果你想找到需要改进的应用领域,那么下面的四叶草功能将是完美的完成这个任务:

  • 三叶草仪表板
  • 覆盖云报告
  • 覆盖TreeMap的报告
  • 覆盖浏览器

哦,三叶草HTML报告看起来fantasti C!

检查:https://confluence.atlassian.com/display/CLOVER/Clover-for-Android

2

在Eclipse Marketplace安装EclEmma

如果你有<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/

3

我一直在使用EMMA(机器人已经支持它)的代码覆盖率(和android-junit-report测试报告),这里是一个总结:

  • 创建Android项目(或库)

android.bat更新项目-p项目-n MY_PROJECT -t Android的16

CD项目

蚂蚁艾玛干净调试

  • 创建一个测试项目(与以前的库)

android.bat更新项目--library .. \ project -p project_Test -n project_Test -t

    万一
  • 的主要项目是不是图书馆

android.bat更新项目-m .. \项目 -p project_Test -n project_Test -t

蚂蚁emma清除调试安装 因为我想运行我自己的仪器,所以我没有使用“测试”

亚行外壳上午仪器-e覆盖真正-e coverageFile SD卡/ coverage.ec -w com..myproject.test/com.zutubi.android.junitreport.JUnitReportTestRunner

  • 拉从设备文件(仿真器)

ADB拉SD卡/的junit-report.xml将

ADB拉SD卡/ coverage.ec

  • 生成XML报告(也可以生成HTML报告)

java命令emma.jar艾玛报告-r XML -in斌/coverage.em,coverage。EC

  • 生成HTML 报告(也可以生成HTML报告)

java命令emma.jar艾玛报告-r HTML -in斌/ coverage.em,覆盖。 EC

  • 使用后构建(詹金斯):

    • JUnit的报告XML
    • 爱玛覆盖率报告(给coverage.xml输入)

不要需要emma.jar到库

检查它从我的blog