Catch up on highlights from Firebase at Google I/O 2023. Learn more

Запустите 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 выполняет модульные тесты и тесты пользовательского интерфейса с использованием платформы XCTest . Чтобы запустить XCTests вашего приложения на устройствах 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 .

  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 _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 .