7

私はアプリを持っています。アプリにボタンがあり、クリックするとアプリが終了します。私はUIAutomation機器を使ってアプリをテストしています。私はこのボタンをテストしたい。しかし、アプリケーションが終了すると、その機器は例外を停止します。私がしたいのは、アプリが存在した後、アプリをもう一度開き、残りのテストを続けたいと思うということです。他の誰かが同じシナリオにいたことがありますか?もしそうなら、見つけたら解決策を教えてください。アプリが終了した後でも、UIAutomation計測器を使用してiOSアプリのテストを続行するにはどうすればよいですか?

+0

ちょうどFYI - あなたは、アプリケーションのボタンがあるとき、Appleはそれを気に入らない。あなたはアプリストアのためにビルドしていますか? – nycynik

+0

ええ、それは既にアプリストアにあります。そのメッセンジャーには、このボタンがあり、アプリをリセットします(ログイン情報を削除します)。その結果、アプリは終了します。技術的には、アプリを終了するボタンではありません。 –

答えて

3

これは、インストゥルメントが終了すると、Appプロセスとの接続が失われるため不可能です。

コマンドラインからUIオートメーションをスクリプト化している場合は、最初のスクリプトが終了してからすべてがリセットされたことを確認した後で、2番目の自動化スクリプトを実行できます。だから、

instruments \ 
    -D [trace document] \ 
    -t [instruments template] \ 
    /path/to/Bundle.app \ 
    -e UIARESULTSPATH [directory to store test output] \ 
    -e UIASCRIPT reset_the_app.js 

instruments \ 
    -D [trace document] \ 
    -t [instruments template] \ 
    /path/to/Bundle.app \ 
    -e UIARESULTSPATH [directory to store test output] \ 
    -e UIASCRIPT check_that_the_app_is_reset.js 

ではなく、再起動するとアプリに再接続し、ちょうど2つの別々のスクリプト、あなたのリセットと-が中止んいずれかを実行するために楽器の同じインスタンスを取得しようと、他の結果をチェックしますアプリの状態。

+0

返事をありがとう。私は同じことをUIAutomationそのものを使って行うことはできないと考えていました。 –

0

あなたは使用することができます。

UIATarget.localTarget().deactivateAppForDuration(n); 

nはあなたがこのアプリを再起動する秒数です。私はこれが役立つことを願っています

+0

アプリを非アクティブ化しても、再起動はありません。詳細については、https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StandgiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW1などのドキュメントを参照してください。 –

0

答えてくれてありがとう、しかしドキュメントは言う:

「ユーザーがホームボタンをタップするか、前面に来て、いくつかの他のアプリを引き起こすことによって、あなたのアプリを終了すると、アプリが中断されます。」

そのため、再起動しませんが中断されますか?

+0

はい、言及した時間だけ秒でアプリケーションを一時停止し、再起動しません。 – coder284

関連する問題