【发布时间】:2011-12-22 03:22:07
【问题描述】:
我设置了 Emma,它曾经对我有用。然后我们对源代码进行了更改,现在它根本不生成coverage.ec。它确实会生成coverage.em。
接近测试结束时,它有错误消息:
[exec] INSTRUMENTATION_CODE: 0
[echo] Downloading coverage file into project directory...
[exec] remote object '/sdcard/coverage.ec' does not exist
BUILD FAILED
/var/lib/jenkins/android-sdk-linux_x86/tools/ant/build.xml:1056: exec returned: 1.
build.xml 的第 1056 行是
"{adb}" failonerror="true".
我看到我的桌面上确实有coverage.em,这意味着我的代码已经过检测。
我在\test下使用的命令是
ant emma debug install test
这以前对我有用。运行代码覆盖对我来说总是崩溃,通常在单元测试快结束时,但它总能让我得到一些覆盖。现在它崩溃了,不会产生coverage.em。
我也尝试访问/sdcard/,它完全可访问和可写。
这已经阻止了我好几天,任何输入将不胜感激。我也是所有这些 Android、Ant 和 Emma 的新手,所以谢谢!!
更新: 我刚刚清理了环境并再次运行了命令。现在也不再生成coverage.em。这告诉我源代码没有被检测。但是我上面使用的命令应该是仪器项目,它的测试项目,安装并开始测试。除了将coverage.ec位置更改为/sdcard/coverage.ec外,我没有更改build.xml中的emma def。这是因为默认情况下它转到 /data/data,而我无权访问此手机上的数据/数据
我使用的是 Android SDK 的 r15,以及默认的 build.xml。我只是将coverage.ec的路径更改为/sdcard/coverage.ec。运行检测
Go to main_project
$andriod update project -p .
Go to main_prject\test
$android update project -m ../ -p .
To start code code
$ant emma debug install test
它生成了 main_project-instrumented.apk 和 test_project-debug.apk。两者都已安装,我可以看到它执行测试。
【问题讨论】:
-
您能否发布您的 build.xml 文件,以便我们了解更多关于发生了什么的信息
-
我使用的是来自 android-sdk-linux-x86/tools/ant/build.xml 的默认版本。这个文件太大了,我无法复制和粘贴。我想我的第二个问题是,我需要对此 build.xml 进行任何更改吗?到目前为止,我所做的唯一更改是更改 coverage.ec 的位置
标签: android ant code-coverage emma