Подготовка тестов XCUITest к отправке

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.

Узнайте больше о сроках поддержки и альтернативных вариантах.

В этом руководстве содержатся инструкции по подготовке тестов XCUITest для отправки в тест Центра приложений.

Требования к тестовой службе

  • Xcode >= 9.4.1
  • iOS >= 9.0

Примечание

Теперь доступны Xcode 12 и iOS 14.

Ограничения службы тестирования

  • Тестировать можно только отправленное приложение, а не взаимодействие с приложениями или остальной частью системы.

Сборка для тестирования

Чтобы запустить тест в Центре приложений, необходимо создать приложение и пакет XCUITest. Выполните одну из двух следующих команд из корневого каталога проекта приложения:

# How to build a xcodeproj
rm -rf DerivedData
xcrun xcodebuild build-for-testing \
  -configuration Debug \
  -project YOUR_XCODEPROJ \
  -sdk iphoneos \
  -scheme YOUR_APP_SCHEME \
  -derivedDataPath DerivedData

YOUR_XCODEPROJ должен указывать на .xcodeproj файл, скорее всего с PROJECT_NAME.xcodeprojименем . Если используется .xcworkspace, используйте -workspace вместо -project. YOUR_APP_SCHEME должна быть схемой, используемой для сборки приложения. По умолчанию обычно это имя приложения.

Xcrun создаст приложение и пакет XCUITest в DerivedData/Build каталоге. Приложение и пакет XCUITest будут находиться в каталоге DerivedData/Build/Products/Debug-iphoneos/ .

xcrun xcodebuild -list

Отправка тестов в Центр приложений

После подготовки набора тестов настройте тестовый запуск для отправки и запуска тестов.

Ниже приведен пример отправки набора XCUITest в тест Центра приложений.

# Upload your test to App Center
appcenter test run xcuitest \
  --app "APP_ID" \
  --devices "DEVICE_SET_ID" \
  --test-series "main" \
  --locale "en_US" \
  --build-dir DerivedData/Build/Products/Debug-iphoneos

Конкретный пример отправки тестов в Центр приложений см. в этом скрипте оболочки, который отправляет тесты в Центр приложений.

Дополнительные снимки экрана и этапы тестирования

В конце каждого метода теста автоматически создается снимок экрана для тестового отчета. Каждый снимок экрана отображается в тестовом отчете Центра приложений в виде отдельного этапа тестирования.

Действия

Вы можете создать дополнительные метки и снимки экрана для метода тестирования, сгруппируя тестовый код с помощью Activitiesapple . Дополнительные сведения см. в разделе Группирование тестов в подшаговы с действиями.

Фрагмент кода для упаковки тестового кода в действие

    [XCTContext
     runActivityNamed:title
     block:^(id<XCTActivity>  _Nonnull activity) {
         // test code
     }];

        XCTContext.runActivity(named: title) { (activity) in
            // test code
        }

Снимки экрана вручную

Снимок экрана автоматически создается для тестового отчета в конце каждого Activity. Вы можете записать снимок экрана в другой точке в , сделав снимок экрана с помощью XCUIScreen, а затем создав вложение с помощью XCTAttachment и добавив его в текущий Activity.Activity Этот снимок экрана будет отображаться в разделе Тестовые отчеты центра приложений вместо снимка экрана по умолчанию из конца Activity.

Фрагмент кода для создания и присоединения снимка экрана в действии

         XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
         XCTAttachment *attachment;
         attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
         [attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
         [activity addAttachment:attachment];
            let screenshot = XCUIScreen.main.screenshot()
            let attachment = XCTAttachment(screenshot: screenshot)
            attachment.lifetime = .keepAlways
            activity.add(attachment)