Я работаю над тестированием пользовательского интерфейса с помощью Espresso в приложении, основанном на карте, которое использует местоположение пользователя.
Настройка
Фактические результаты / Проблема
Работает: местоположение пользователя затем подделывается до лат, который я кодировал.Но через некоторое время у меня возникли проблемы.После нескольких тестов я получаю всплывающее окно системы, которое, по-видимому, запускается com.google.android.gms:play-services
, которое встроено в наше приложение.
Сообщение «Для лучшего опыта включите местоположение устройства, которое использует службу определения местоположения Google."как вы можете видеть на картинке ниже:
![Google location service popup](https://i.stack.imgur.com/Wn0Ub.png)
Таким образом, кажется, что код проверки запускает это всплывающее окно, а затем разрушает все оставшиеся тесты, так каквсплывающее окно не закрывается, пока не будет нажата одна из кнопок.
UI Automator: неправильное решение
Я знаю, что мог бы добавить немного кода с помощью UI Automator для проверки всплывающего окна, ноЯ хотел бы избежать этого обходного пути, поскольку:
- Я не знаю, что вызывает это всплывающее окно (кажется случайным)
- Я не хочу запускать какой-то дрянной / дублированный код раньшезапускать каждый тест только для этого всплывающего окна.
- На самом деле я не использую UI Atomator для своих тестов и не хочу импортировать в свой проект другую библиотеку.
Обратите внимание, чтоЯ не могу воспроизвести эту проблему на своем устройстве или эмуляторе, но только когда я запускаю свои тесты в gcloud (Firebase Test Lab) ...
Вопрос
Сталкивались ли вы когда-нибудь с этой проблемой?Есть ли у вас какие-либо идеи, как я могу избежать этого всплывающего окна или обходного пути, которое не связано с UI Automator?
Еще одна вещь
Помните, что я запускаю тесты удаленно, на виртуальном устройстве, которое не зарегистрировано ни в одной учетной записи Google.Кроме того, у меня нет доступа к системе / настройкам устройства, но в конечном итоге я смогу использовать команду ADB, чтобы получить некоторые права или применить некоторые настройки к системе.
Плохие новости
На самом деле фиктивная локация частично поддерживается в Firebase Test Lab на виртуальных устройствах.Смотрите мой комментарий ниже для получения дополнительной информации.
Таким образом, в зависимости от варианта использования, переключение на реальное устройство может решить вашу проблему, как проблема, упомянутая в этом разделе.