У меня есть calabash-андроид, который отлично работает со сценарием по умолчанию (используя cucumber
для запуска тестов или calabash-android console
для входа в режим REPL).
Однако, в некоторых сценариях, оказывается, очень полезно иметь возможность подключаться к уже запущенному приложению. Например, я должен запустить приложение в режиме отладки и запустить тесты, чтобы иметь возможность устанавливать контрольные точки и проверять, почему некоторые функции не работают должным образом в моих сценариях.
Когда дело доходит до Calabash на iOS, эта задача очень проста: никакой дополнительной подготовки не требуется, поскольку приложение начинается с подключенного тестового сервера, и я могу в любое время присоединить к нему калабаш. Тем не менее, Calabash Android, похоже, отключает приложение каждый раз, когда я пытаюсь запустить calabash с запуском приложения.
Есть ли способ обойти это?
ИЗМЕНИТЬ Похоже, что приведенные ниже ответы не помогли, но я все еще надеюсь, что кто-то (калабаш-разработчики, где ты?) Наткнется на этот день. Я потратил некоторое время на обнаружение проблемы самостоятельно, и в этом проблема:
- Запустите приложение в режиме отладки (например, с помощью Xamarin)
- Начать
calabash-android console PATH_TO_APK
- Попробуйте выдавать какие-либо команды (например,
query("*")
) - сбой сообщения с сообщением KeepAliveDisconnected - Попробуйте запустить start_test_server_in_background - приложение убито, а сеанс отладки завершен
Копаясь глубже в деталях, я обнаружил, что start_test_server_in_background фактически запускает shell am instrument
с sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner
, являющимся инструментальной базой и множеством других флагов, описывающих, какое приложение для инструмента, какой порт использовать и т.д.
Таким образом, следующее поможет много: возможно ли, чтобы инструмент shell am подключался к запущенному приложению?