3

我们正在开发一个 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 'calabash-android run ~/MyApp/MyApp.apk'
    Process.Kill('HUP', PID)
end

我们目前正在使用 sleep 命令,以便在模拟器完全准备好之前不会运行 calabash 测试。这并不理想。是否有用于检查设备是否准备就绪的 Android 命令?我的意思是Android已启动并显示锁定屏幕。

4

1 回答 1

0

我发现检测模拟器是否可以使用以及 Calabash 启动安装过程的最可靠方法是检测模拟器何时bootanim停止。

您可以在终端中使用 ADB 检查模拟器是否已完成手动启动:

adb shell getprop init.svc.bootanim

作为 Calabash 测试套件的一部分,我在 Rake 命令中有以下内容,它可以解决问题:

booting = ''

while booting != 'stopped'
  booting = `adb shell getprop init.svc.bootanim`.strip
  puts 'Waiting for emulator to boot'
  sleep 2
end

希望这对你有用!

于 2016-06-15T07:34:13.150 回答