3

多数のシェル コマンドを実行してエミュレーターを起動し、いくつかのひょうたんテストを実行する ruby​​ スクリプトを開発しています。

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

現在、エミュレーターの準備が完了するまでひょうたんテストが実行されないように、スリープ コマンドを使用しています。これは理想的ではありません。デバイスの準備ができているかどうかを確認する 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 に答える