В этом руководстве описано, как подготовить XCTest для тестирования в Firebase Test Lab .
Шаг 1 : Настройте расположение производных данных вашего проекта.
Xcode помещает скомпилированные iOS-артефакты, включая любые созданные вами тесты, в каталог Derived Data. При желании можно оставить расположение этого каталога по умолчанию, но часто бывает полезно выбрать более легкодоступное место для файлов, особенно если вы собираетесь часто запускать тесты с помощью Test Lab :
- Откройте свой проект в Xcode.
- В строке меню macOS выберите Файл > Настройки проекта...
- Измените значение в раскрывающемся списке «Производные данные» с «Местоположение по умолчанию» на «Пользовательское местоположение» .
- В поле под выпадающим списком выберите место, куда Xcode будет выводить ваши тесты. (Это ваша FOLDER_WITH_TEST_OUTPUT )
Шаг 2 : Создайте универсальный тестовый файл.
Test Lab запускает модульные и UI-тесты с использованием фреймворка XCTest . Чтобы запустить XCTest-тесты вашего приложения на устройствах 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 Code Signing .
Проверьте подпись приложения, выполнив
codesign --verify --deep --verbose /path/to/MyApp.app, где `MyApp` — это имя приложения внутри распакованной папки. Это имя может отличаться для каждого проекта. Ожидаемый результат:MyApp.app: valid on disk.Если вы используете XCUITest, вам необходимо проверить тест и средство запуска тестов, выполнив
codesign --verify --deep --verbose /path/to/MyTest-Runner.appMyTest-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 .