Расположение эмулятора iOS для UITesting

Я пытаюсь запустить свои UITests на сервере непрерывной интеграции (я использую Bitrise). Итак, в одном из моих UITests у меня есть следующее:

let myLocationPin = app.otherElements["My Location"]
        self.expectation(for: exists, evaluatedWith: myLocationPin, handler: nil)

        self.waitForExpectations(timeout: 20, handler: nil)

        expect(myLocationPin.exists).to(beTrue())
        expect(myLocationPin.isHittable).to(beTrue())
        myLocationPin.tap()

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

2 ответа

Решение

Вы выбрали местоположение на своем локальном компьютере из выпадающего списка перед запуском?

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

Вы можете следовать этому посту, чтобы установить местоположение на своих схемах: Автоматизация Xcode' Debug > Simulate Location команда

Обновить:

Если вышеуказанный метод не решил проблему, другое решение будет:

Чтобы изменить местоположение в самом симуляторе, вам нужно будет добавить script шаг до вашего UITest, включая следующий скрипт:

# download set-simulator-location
brew install lyft/formulae/set-simulator-location

# run simulator
export IOS_SIMULATOR_UDID=`instruments -s devices | grep "iPhone 6 (10.3) \[" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'`
echo $IOS_SIMULATOR_UDID
open -a "simulator" --args -CurrentDeviceUDID $IOS_SIMULATOR_UDID

# wait simulator to start fully
sleep 15

# set location
set-simulator-location -q London

Не забудьте поменять iPhone 6 (10.3) на симулятор вам нужно и London в ваше собственное местоположение, с -c флаг вы также можете установить координаты.

Для получения дополнительной информации о set-simulator-location посещение: https://github.com/lyft/set-simulator-location

Если вы хотите настраивать местоположение в вашем симуляторе, выберите "Симулятор" и выполните следующие два шага.

и изменить местоположение

Другие вопросы по тегам