用Ruby编写Android仿真器Shell脚本
我们正在开发一个ruby脚本,它执行一系列shell命令来启动模拟器并运行一些葫芦测试用Ruby编写Android仿真器Shell脚本,android,ruby,Android,Ruby,我们正在开发一个ruby脚本,它执行一系列shell命令来启动模拟器并运行一些葫芦测试 PID = fork do Signal.trap('HUP') { puts 'PROCESS ENDED'; exit } exec 'emulator -avd TestDevice1' end fork do sleep(55) exec 'adb shell input keyevent 82' end fork do sleep(60) exec
PID = fork do
Signal.trap('HUP') { puts 'PROCESS ENDED'; exit }
exec 'emulator -avd TestDevice1'
end
fork do
sleep(55)
exec 'adb shell input keyevent 82'
end
fork do
sleep(60)
exec 'calabash-android run ~/MyApp/MyApp.apk'
Process.Kill('HUP', PID)
end
我们目前正在使用sleep命令,以便在仿真器完全就绪之前不会运行葫芦测试。这并不理想。是否有Android命令来检查设备是否准备就绪?我的意思是Android已经启动,锁屏已经显示。我发现检测仿真器是否准备好使用,以及Calabash启动安装过程的最可靠的方法是检测
bootanim
何时停止
您可以在终端中使用ADB检查仿真器是否已手动完成引导:
adb shell getprop init.svc.bootanim
作为葫芦测试套件的一部分,我在Rake命令中提供了以下内容:
booting = ''
while booting != 'stopped'
booting = `adb shell getprop init.svc.bootanim`.strip
puts 'Waiting for emulator to boot'
sleep 2
end
希望它对你有用 adb设备为您提供已连接设备的列表。当状态从“脱机”变为“设备”时,在readyadb devices命令正确到一定程度之前,设备不应可见。然而,“设备”状态在android启动屏幕仍处于打开状态时可见(在锁定屏幕出现之前)。如果您知道某个进程在锁定屏幕可见时启动,您可以使用adb shell ps | grep