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

Внимание

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

Дополнительные сведения о временной шкале поддержки и альтернативах.

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

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

  • Xcode >= 9.4.1
  • iOS >= 9.0

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

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

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

Чтобы запустить тест в Центре приложений, необходимо создать приложение и пакет 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

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

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

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

Процедуры

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

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

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

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

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

Снимок экрана автоматически создается для тестового отчета в конце каждого Activity. Снимок экрана можно записать в другой точке, Activity выполнив снимок экрана с помощью XCUIScreen, а затем создав вложение с помощью XCTAttachment и добавив его в текущий 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)