我在本教程之后为Android应用程序创建了一个简单的ui测试:
http://developer.android.com/tools/testing/testing_ui.html
现在我已经构建了我的项目并使用以下命令将TestProject.jar
文件上传到虚拟设备中:
adb push <path_to_output_jar>/TestProject.jar /data/local/tmp/
但是当我运行命令来运行我的测试时
adb shell uiautomator runtest TestProject.jar -c com.uia.example.my.Test
我收到此错误
错误:/ data / local / tmp / TestProject.jar不存在
为什么呢? jar被上传到虚拟设备。我在这里错过了什么吗?
此外,使用真实设备我甚至无法上传它:
uiautomator:许可被拒绝
答案 0 :(得分:2)
您能否确认adb push
是否确实正确传输了文件?有几种方法可以检查:
adb push
命令的输出,例如adb push bin/UIAutomatorExample.jar /data/local/tmp/
在我的情况下,输出为1011 KB/s (5854 bytes in 0.005s)
(证据是传输的字节数。这里我们知道某些已成功转移某处)。 adb shell
检查文件在预期位置是否可用:adb shell ls -l /data/local/tmp/*.jar
以下是我的示例的输出
-rw-rw-rw- shell shell 5854 2013-04-11 01:36 UIAutomatorExample.jar
注意:文件大小(以字节为单位)与第一个命令输出的数字相匹配,为5854字节。一旦我们知道jar文件已成功部署到正确的位置,则运行命令应该可用,前提是目标设备运行的是Android API的16或更高版本。 (虽然在实践中17是Android的第一个版本,其中UIAutomator似乎可靠地工作。)
adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings
当然,您需要将LaunchSettings.jar
替换为TestProject.jar
:)