Обработка вылетов «Новая функциональность» в обновлениях XCUItest для iOS - PullRequest
1 голос
/ 10 ноября 2019

У меня есть набор тестов XCUI, которые демонстрируют некоторую функциональность в моем приложении. В настоящее время у меня есть следующая функция, которая поднимает клавиатуру, набирает некоторые вещи, затем нажимает «Поиск» (что эквивалентно Enter в этом контексте.

func clickSearchOnKeyboard(_ app: XCUIApplication) {
        XCTAssert(app.staticTexts["Search"].waitForExistence(timeout: 10))
        app.textFields["SearchItemView.SearchTextFieldID"].clearAndEnterText(testData.productData.valid.styleColor)
        XCUIApplication().buttons["Search"].tap()
    }

Однако после обновления симуляторов доiOS 13, этот тест не пройден, потому что теперь, когда клавиатура впервые поднята, появляется всплывающее окно «Что нового», объясняющее новую функциональность смахивания.

fly-out-ios

Я думаю, что могу просто добавить предложение If в свой тестовый код, чтобы справиться с этим при первом его появлении, но мне интересно, если кто-нибудь нашел способ отключить такие вещи для тестирования на симуляторе:

  • Что-то в методе Init(), которое отключало бы всплывающие окна типа «Что нового»?
  • Какая-то умная функция, которая всегда могла бы перехватить это событие и нажать «Продолжить»?

ДОПОЛНИТЕЛЬНЫЕ БОНУСНЫЕ ТОЧКИ: Эти автоматизированные тесты выполняются как часть автоматизированного конвейера. В связи с этим предполагается, что эти тесты выполняются на совершенно новом симуляторе. et (поэтому мы не можем повторно использовать существующие симуляторы). В частности, мы продуваем симуляторы (используя «Удалить все содержимое и настройки») перед каждым запуском. Поэтому любое решение должно быть полностью переносимым и требовать ручного вмешательства.

Что-то еще?

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

Вы можете запускать тесты на клонах уже настроенного симулятора (используйте xcrun simctl clone ...)

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

Подробно:

  1. Создать новый симулятор
  2. Создать новый репозиторий git из своей папки
  3. Настроить симулятор так, как вам нравится
  4. Наблюдайте за изменениями в симуляторе с помощью git
  5. На основе этих изменений добавьте шаги в сценарий запуска CI / CD (предыдущий запуск теста)
0 голосов
/ 14 ноября 2019

Я думаю, что лучший тест - это просто проверить диалог и закрыть его, если он появится.

Вы также можете запустить инструмент Apple и вызвать всплывающее окно после завершения операции стирания и сброса в рамках первоначальной настройки инструмента.

напр.

  1. xcrun simctl erase deviceuuid
  2. xcodebuild test-with-building name: DismissKeyboardTour destination = deviceuuid
  3. xcodebuild test-без-сборка mytestsuite destination = deviceuuid

Я думаю, вам нужно будет делать это только один раз за запуск набора тестов (например, все тесты)

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