【发布时间】:2011-09-14 20:36:11
【问题描述】:
我有一个 Monkeyrunner 脚本,它连接到 Android 设备并在其上部署 APK。
serial = '12345JKL'
device = MonkeyRunner.waitForConnection(deviceId=serial)
device.installPackage(path_to_apk)
当我使用 Windows 命令外壳执行脚本时,这可以完美运行。
"C:\dev\android\tools\monkeyrunner.bat" "C:\dev\my_script.py" -psome_parameter
问题是我想让 my_script.py 在同一台 PC 上由 TeamCity(Enterprise 6.0.3)构建配置执行:这失败了。 请在此处找到堆栈跟踪:http://pastebin.com/CjWy95c3
首先我认为 TC 弄乱了脚本的参数。但是来自 TC 构建日志的命令
[00:55:12]: Starting: "C:\dev\android\tools\monkeyrunner.bat" "C:\dev\my_script.py" -psome_parameter
in directory: C:\some_dir
与命令外壳中的相同,因此当我将命令复制到命令外壳中时,脚本可以连接到设备并正常工作,而C:\some_dir 是我的当前目录。
我无法在 TC 之外重现此错误。
我想强调的是,这一切都发生在同一台 PC (Win 7 x64) 上。该脚本在从命令 shell 执行时有效,但在由 TC 构建配置触发时失败(总是在尝试连接到设备时)。
我想不出发生这种情况的原因,如果有人能指出我正确的方向,我会非常高兴。
在此先感谢
编辑:事实证明,问题不仅限于MonkeyRunner.waitForConnection(),而且在调用MonkeyRunner.sleep(5) 时也会发生。 Stacktrace
MonkeyRunner 和 TeamCity 会不会相处融洽?
【问题讨论】:
标签: android teamcity monkeyrunner