У меня есть приложение. В приложении есть кнопка, которая, при нажатии, выходит из приложения. Я тестирую приложение, используя инструменты UIAutomation. Я хочу проверить эту кнопку. Но после выхода приложения инструмент перестает давать исключение. Что я хочу сделать, так это то, что после того, как приложение существует, я хочу снова открыть приложение и продолжить оставшуюся часть теста. Кто-нибудь еще был в одном и том же сценарии? Если да, можете ли вы, пожалуйста, поделиться решением, если вы его нашли?Как продолжить тестирование приложения iOS, используя инструмент UIAutomation, даже после выхода приложения?
ответ
Это невозможно, потому что инструменты теряет соединение с приложением после его выхода.
Если вы создаете скрипт UI Automation из командной строки, вы можете запустить второй сценарий автоматизации после того, как первый из них покинет приложение, а затем проверит, чтобы все было сброшено.
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
Таким образом, вместо того, чтобы получить тот же экземпляр инструментов для возобновления и прикрепить к приложению, просто запустить две отдельные сценарии, то, что делает ваш сброса-и-прерывание, а другой, который проверяет полученный состояние приложения.
Спасибо за ответ. Я думал, что это невозможно сделать, используя UIAutomation. –
Вы можете использовать:
UIATarget.localTarget().deactivateAppForDuration(n);
где п число секунд, которые вы хотите это приложение, чтобы перезагрузить. Надеюсь, это поможет.
Деактивация приложения ни в коем случае не является перезапуском. См. Doc, например, https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW1 для получения дополнительной информации. –
спасибо за ответы, но документация говорит:
«Когда пользователь покидает приложение, нажав на кнопку Home или вызывая некоторое другое приложение, чтобы прийти на первый план, ваше приложение приостановлено.»
Значит, его не перезапустить, а приостановить?
Да, его просто приостанавливает приложение для указанного времени в секундах и его не перезапускает. – coder284
Just FYI - Apple не нравится, когда у вас есть кнопка, которая содержит приложение. Вы строите магазин приложений? – nycynik
Да, это уже на appstore. Его посланник, и есть эта кнопка, которая сбрасывает приложение (он удаляет информацию о регистрации). Как следствие, приложение завершает работу. Так что технически это не кнопка выхода из приложения. –