0

Android アプリを Calabash でテストしていますが、細部を除いてすべて問題ありません。onPause() および onResume() メソッドをオーバーライドして特定のアクションを実行し、それらをテストしたいと思います。問題は、ひょうたんでそれを行う方法がわからないことです。

アプリをバックグラウンド実行に送信できることを読みました

system("adb shell input keyevent KEYCODE_HOME")

参照: ( Calabash -Android: Calabash-Android の Android デバイスでホーム ボタンをシミュレートできますか? )

これは onPause() メソッドのテストでは問題ありませんが、onResume() もテストする必要があり、そのためにアプリに戻る必要があります。それは可能ですか?

ありがとうございました!

4

3 に答える 3

2

技術的にサポートされていません...この下に、うまくいくと思われる回避策があります。

http://www.rubydoc.info/gems/calabash-android/0.5.8/Calabash/Android/Operations:app_to_background

まだ実装されていません

def app_to_background(secs)
  ni
end

私の機能ファイルでは:

@automated @high @test
Scenario Outline: Login with keep me signed in background and relaunch
  Given I am on the Login page
  When I check keep me signed in 
  When I log into Overview page with "<acct>"
  When I background the app
  When I relaunch the app 
  Then I am on the Overview page 

バックグラウンドと再起動への私のステップ定義:

When /I background the app/ do
  `adb shell input keyevent KEYCODE_HOME`
  sleep(5)
end

When  /I relaunch the app/ do
  attempts = 0
  begin
    attempts = attempts + 1
    start_test_server_in_background
  rescue RuntimeError => e 
    retry if attempts < 3
  end  
    sleep(5)
end 

start_test_server_in_background (上記) を使用すると、ログイン画面ではなく、すぐにアプリに戻ります。あなたは私のステップで私が持っていることに気づきますWhen I check keep me signed in. これがどれほど信頼できるかはわかりませんが、テストしているアプリケーションでは機能します。

于 2015-04-22T20:43:23.723 に答える