我设置了 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。两者都已安装,我可以看到它执行测试。