1

按照本教程,我为 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:权限被拒绝

4

1 回答 1

2

您能否确认adb push实际传输文件是否正确?有几种方法可以检查这一点:

  1. 检查adb push命令的输出,例如adb push bin/UIAutomatorExample.jar /data/local/tmp/在我的例子中,输出是1011 KB/s (5854 bytes in 0.005s)(证据是传输的字节数。这里我们知道某些东西已成功传输到某处)。
  2. 用于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 文件已成功部署到正确的位置,运行命令应该可以工作,前提是目标设备正在运行 16 版或更高版本的 Android API。(尽管实际上 17 是 UIAutomator 似乎可以可靠运行的 Android 的第一个版本。)

adb shell uiautomator runtest LaunchSettings.jar -c com.uia.example.my.LaunchSettings

当然你需要替换LaunchSettings.jarTestProject.jar:)

于 2013-04-11T13:35:44.837 回答