В этом руководстве рассказывается, как подготовить XCTest для тестирования в Firebase Test Lab.
Шаг 1. Настройте местоположение производных данных проекта
Xcode помещает скомпилированные артефакты iOS, в том числе созданные вами тесты, в каталог DerivedData. Вы можете оставить местоположение по умолчанию для этого каталога, если хотите, но часто удобнее выбрать более доступное место для файлов, особенно если вы планируете часто проводить тестирование с помощью Test Lab:
- Откройте проект в Xcode.
- В строке меню macOS выберите Файл > Настройки проекта….
- В раскрывающемся списке Производные данные выберите Специальное местоположение вместо Местоположение по умолчанию.
- В поле под раскрывающимся списком выберите место, куда Xcode будет сохранять результаты тестирования. (Это ваш FOLDER_WITH_TEST_OUTPUT.)
Шаг 2. Создайте общий тестовый файл
Test Lab выполняет модульные тесты и тесты интерфейса с помощью фреймворка XCTest. Чтобы запустить XCTests приложения на устройствах Test Lab, создайте его для тестирования на универсальном устройстве iOS:
- В раскрывающемся списке устройств в верхней части окна рабочей области Xcode выберите Generic iOS Device (Универсальное устройство iOS).
- В строке меню macOS выберите Продукт > Сборка для > Тестирование.
В качестве альтернативы можно создать 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. Подпишите и проверьте тест
Убедитесь, что все артефакты в приложении и тесте подписаны. Например, это можно сделать в 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_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.