Эспрессо с фиктивным местоположением: избегайте всплывающих окон Google - PullRequest
0 голосов
/ 14 октября 2018

Я работаю над тестированием пользовательского интерфейса с помощью Espresso в приложении, основанном на карте, которое использует местоположение пользователя.

Настройка

Фактические результаты / Проблема

Работает: местоположение пользователя затем подделывается до лат, который я кодировал.Но через некоторое время у меня возникли проблемы.После нескольких тестов я получаю всплывающее окно системы, которое, по-видимому, запускается com.google.android.gms:play-services, которое встроено в наше приложение.

Сообщение «Для лучшего опыта включите местоположение устройства, которое использует службу определения местоположения Google."как вы можете видеть на картинке ниже:

Google location service popup

Таким образом, кажется, что код проверки запускает это всплывающее окно, а затем разрушает все оставшиеся тесты, так каквсплывающее окно не закрывается, пока не будет нажата одна из кнопок.

UI Automator: неправильное решение

Я знаю, что мог бы добавить немного кода с помощью UI Automator для проверки всплывающего окна, ноЯ хотел бы избежать этого обходного пути, поскольку:

  • Я не знаю, что вызывает это всплывающее окно (кажется случайным)
  • Я не хочу запускать какой-то дрянной / дублированный код раньшезапускать каждый тест только для этого всплывающего окна.
  • На самом деле я не использую UI Atomator для своих тестов и не хочу импортировать в свой проект другую библиотеку.

Обратите внимание, чтоЯ не могу воспроизвести эту проблему на своем устройстве или эмуляторе, но только когда я запускаю свои тесты в gcloud (Firebase Test Lab) ...

Вопрос

Сталкивались ли вы когда-нибудь с этой проблемой?Есть ли у вас какие-либо идеи, как я могу избежать этого всплывающего окна или обходного пути, которое не связано с UI Automator?

Еще одна вещь

Помните, что я запускаю тесты удаленно, на виртуальном устройстве, которое не зарегистрировано ни в одной учетной записи Google.Кроме того, у меня нет доступа к системе / настройкам устройства, но в конечном итоге я смогу использовать команду ADB, чтобы получить некоторые права или применить некоторые настройки к системе.


Плохие новости

На самом деле фиктивная локация частично поддерживается в Firebase Test Lab на виртуальных устройствах.Смотрите мой комментарий ниже для получения дополнительной информации.

Таким образом, в зависимости от варианта использования, переключение на реальное устройство может решить вашу проблему, как проблема, упомянутая в этом разделе.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

То, что вы видите, может быть ошибкой в ​​Firebase Test Lab, если это происходит на некоторых устройствах, но работает на других.Например, работает на физическом устройстве Samsung, но не работает на физическом устройстве HTC.Или работает на всех физических устройствах, но не работает на виртуальных устройствах.

Поскольку я не могу напрямую сообщать вам о переполнении стека, я призываю вас присоединиться к каналу Slack (# test-lab) Firebase Test Lab на https://firebase -community.slack.com / .

Будут инженеры Firebase, которые будут активно изучать проблемы, с которыми вы сталкиваетесь, и смотреть непосредственно на тестовые прогоны, которые вы выполняли в своем проекте.

0 голосов
/ 15 октября 2018

На основании этого сообщения в блоге , согласно исследованию AP (Associated Press), даже если вы отключите историю местоположений, поисковый гигант будет отслеживать вас каждый раз, когда вы открываете Google Карты, получайте определенные автоматические обновления погодыили искать вещи в вашем браузере.

Существует предложенное решение для остановки этого всплывающего окна, которое отключит отслеживание местоположения, скрытое глубоко в вашей учетной записи Google, под названием Активность в Интернете и приложениях .

Вотшаги :

Из браузера:

  • Войдите в свою учетную запись Google, затем найдите учетную запись Google враскрывающийся список в верхнем правом углу
  • Затем перейдите на Личная информация и конфиденциальность , выберите Перейдите в раздел Мои действия
  • С левой навигационной панелинажмите Элементы управления активностью
  • Там вы увидите настройку Активность в Интернете и приложениях , которую можно отключить

На вашем телефоне:

  • перейдите с Настройка Google на Аккаунт Google
  • нажмите Данные и персонализация
  • , затем вы можете найти Веб-приложение и активность , отключить его.

Пауза Активность в Интернете и приложениях может ограничивать или отключать более персонализированные функции служб Google.

...