Запустите XCTest

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

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

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

  1. Откройте свой проект в Xcode.
  2. В строке меню macOS выберите Файл > Настройки проекта...
  3. Измените значение в раскрывающемся списке «Производные данные» с «Местоположение по умолчанию» на «Пользовательское местоположение» .
  4. В поле под выпадающим списком выберите место, куда Xcode будет выводить ваши тесты. (Это ваша FOLDER_WITH_TEST_OUTPUT )

Шаг 2 : Создайте универсальный тестовый файл.

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

  1. В раскрывающемся списке устройств в верхней части окна рабочей области Xcode выберите «Generic iOS Device» .
  2. В строке меню macOS выберите Продукт > Сборка для > Тестирование .

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

проект

xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.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 Code Signing .

  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-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 _iphoneos DEPLOYMENT_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 .