Запуск XCTest

В этом руководстве описывается, как подготовить XCTest для тестирования в Firebase Test Lab.

Шаг 1. Настройте местоположение производных данных проекта

Xcode помещает скомпилированные артефакты iOS, включая любые созданные вами тесты, в каталог Derived Data. Вы можете оставить местоположение по умолчанию, но лучше выбрать более доступное место для файлов, особенно если вы собираетесь часто запускать тесты с помощью Test Lab.

  1. Откройте проект в Xcode.
  2. В строке меню macOS выберите File (Файл) > Project Settings (Настройки проекта).
  3. В раскрывающемся списке Derived Data (Производные данные) измените значение Default Location (Местоположение по умолчанию) на Custom Location (Собственное местоположение).
  4. В поле под раскрывающимся списком выберите место, куда Xcode будет выводить результаты тестов. (Это ваш FOLDER_WITH_TEST_OUTPUT)

Шаг 2. Создайте общий тестовый файл

Test Lab выполняет модульное тестирование и тесты пользовательского интерфейса с помощью фреймворка XCTest. Чтобы запустить XCTest приложения на устройствах Test Lab, создайте сборку для тестирования на универсальном iOS-устройстве:

  1. В раскрывающемся списке устройств в верхней части окна рабочей области Xcode выберите Generic iOS Device (Универсальное iOS-устройство).
  2. В строке меню macOS выберите Product (Продукт) > Build For (Собрать для) > Testing (Тестирование).

Вы также можете создать XCTest из командной строки. Используйте в терминале следующую команду:

проект

xcodebuild -project PATH/TO/YOUR_WORKSPACE/PROJECT_NAME.xcodeproj \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

рабочая область

xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \
   -scheme YOUR_SCHEME \
   -derivedDataPath FOLDER_WITH_TEST_OUTPUT \
   -sdk iphoneos build-for-testing

Шаг 3. Подпишите тест и подтвердите его

  1. Убедитесь, что все артефакты в приложении и тесте подписаны. Например, это можно сделать в Xcode, указав настройки подписи, такие как профиль инициализации и идентификатор. Подробнее о подписи кода Apple…

  2. Проверьте подпись приложения, выполнив команду codesign --verify --deep --verbose /path/to/MyApp.app, где MyApp – название приложения в распакованной папке. Это зависит от проекта. Ожидаемый результат: MyApp.app: valid on disk.

  3. Если вы запускаете XCUITest, вам нужно проверить тест и средство запуска, выполнив команду codesign --verify --deep --verbose /path/to/MyTest-Runner.app, где MyTest – это название средства запуска в распакованной папке. Это зависит от проекта. Ожидаемый результат: MyTest-Runner.app: valid on disk.

Шаг 4. Упакуйте приложение и протестируйте его загрузку

  1. После успешной сборки теста заархивируйте его для загрузки в Test Lab:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

Вы также можете упаковать тест, сжав файлы вручную:

  1. Откройте Finder и перейдите в папку FOLDER_WITH_TEST_OUTPUT.

  2. Откройте папку, название которой начинается с названия вашего проекта, и перейдите в папку Build/Products.

  3. Выберите папки Debug-iphoneos и YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun, а затем сожмите их.

Шаг 5. Запустите тест локально (необязательно)

Прежде чем запускать тест в Test Lab, вы можете запустить его локально на устройстве, подключенном через USB, чтобы проверить его работу.

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \
    -destination id=your-phone-id

Дальнейшие действия

Загрузите и запустите тест в консоли Firebase или gcloud CLI.