В этом руководстве описывается, как подготовить XCTest к тестированию в Firebase Test Lab .
Шаг 1. Настройте местоположение производных данных вашего проекта.
Xcode помещает скомпилированные артефакты iOS, включая любые созданные вами тесты, в каталог производных данных. Если хотите, можно сохранить местоположение по умолчанию для этого каталога, но часто полезно выбрать более легкодоступное место для файлов, особенно если вы собираетесь часто запускать тесты с помощью Test Lab :
- Откройте свой проект в Xcode.
- В строке меню macOS выберите «Файл» > «Настройки проекта…».
- Измените раскрывающийся список «Производные данные» с «Местоположение по умолчанию» на «Пользовательское местоположение» .
- В поле под раскрывающимся списком выберите место, куда Xcode будет выводить ваши тесты. (Это ваша FOLDER_WITH_TEST_OUTPUT )
Шаг 2. Создайте общий тестовый файл.
Test Lab запускает модульные тесты и тесты пользовательского интерфейса с использованием платформы XCTest . Чтобы запустить XCTests вашего приложения на устройствах Test Lab , создайте его для тестирования на универсальном устройстве iOS:
- В раскрывающемся списке устройств в верхней части окна рабочей области Xcode выберите Generic iOS Device .
- В строке меню 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. Подпишите свой тест и подтвердите.
Убедитесь, что все артефакты в приложении и тесте подписаны. Например, вы можете сделать это через Xcode, указав параметры подписи, такие как профиль обеспечения и удостоверение. Дополнительные сведения см. в разделе Подписание кода Apple .
Проверьте подпись приложения, запустив
codesign --verify --deep --verbose /path/to/MyApp.app
, где «MyApp» — это имя приложения в разархивированной папке. Это варьируется для каждого проекта. Ожидаемый результат:MyApp.app: valid on disk
.Если вы запускаете XCUITest, вам необходимо проверить тест и бегуна, запустив
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
, где «MyTest» — это имя бегуна внутри разархивированная папка. Это варьируется для каждого проекта. Ожидаемый результат:MyTest-Runner.app: valid on disk
.
Шаг 4. Упакуйте приложение и проверьте его на загрузку.
После успешной сборки теста заархивируйте его для загрузки в Test Lab :
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Вы также можете упаковать тест, сжимая тестовые файлы вручную:
Откройте Finder и перейдите к
FOLDER_WITH_TEST_OUTPUT
.Откройте папку с префиксом имени вашего проекта, затем перейдите в папку
Build/Products
внутри.Выберите папки
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 .