Получить текущую позицию GPS в iOS UITest - PullRequest
0 голосов
/ 15 сентября 2018

Можно ли получить текущую позицию GPS телефона / симулятора в тестовом наборе UITest?

Одним из возможных путей решения этой проблемы является запуск тестового приложения в фоновом режиме и связь с этим приложением втестовый пример, но я хочу избежать этого, если это возможно.

Ответы [ 2 ]

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

Предполагая, что вы контролируете код приложения, а не только код тестовых случаев:

  • Реализация отслеживания местоположения в самом приложении
  • Отображение текущего / последнего известного местоположения с помощьюотметка времени с помощью открытого (статического?) метода класса отслеживания
  • Доступ к нему в вашем тестовом примере в дополнение к тестируемой функциональности

Это делает ваши тестовые наборы менее надежными, но должно васжелаемое поведение

0 голосов
/ 17 сентября 2018

TL; DR:

Пример проекта: https://github.com/JakubMazur/SO52339694


Принцип тестирования заключается в том, что вы контролируете среду, поэтому для тестирования следует использовать одно из предопределенных местоположений илипоместите одно из ваших местоположений в .gpx файл:

пример:

<?xml version="1.0"?>
<gpx version="1.1">
<wpt lat="50.12108905423" lon="39.9260224404235">
</wpt>
</gpx>

Если вы в комментариях сказали как место в данный момент внутри UITesting, это не будет возможно в реальномвремя, но вы можете объединить несколько вещей, чтобы получить местоположение из времени пару секунд / минут назад.

Вот что я хотел бы сделать:

  1. Существует инструмент под названием corelocationcli доступно через доморощенный.Если вы установите его, это даст вам текущие координаты.

  2. Затем я создам файл, связанный в моем проекте xcode в тестах, назовем его genarated.gpx и заполню его любыми данными на данный момент..

  3. Тогда я напишу такой скрипт:

код

#!/bin/bash

latitude="$(CoreLocationCLI -format \"%latitude\")"
longitude="$(CoreLocationCLI -format \"%longitude\")"

echo "<?xml version=\"1.0\"?>
<gpx version=\"1.1\">
<wpt lat=${longitude} lon=${latitude}>
</wpt>
</gpx>" > generated.gpx
И примените это как фазу сборки:

enter image description here

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

Пример проекта вы можете найти на github

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...