アップロードのための XCUITest テストの準備

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替方法の詳細をご確認ください

このガイドでは、App Center テストにアップロードするための XCUITest テストを準備する手順について説明します。

テスト サービスの要件

  • Xcode >= 9.4.1
  • iOS >= 9.0

テスト サービスの制限事項

  • アップロードされたアプリのみをテストでき、アプリやシステムの残りの部分を介した操作はテストできません。

テスト用のビルド

App Center でテストを実行するには、アプリケーションと XCUITest バンドルをビルドする必要があります。 アプリケーション プロジェクト ディレクトリのルートから次の 2 つのコマンドのいずれかを実行します。

# 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を使用する場合は、-projectではなく-workspaceを使用します。 YOUR_APP_SCHEME は、アプリケーションのビルドに使用するスキームである必要があります。 既定では、通常はアプリケーションの名前です。

xcrun によって、アプリと XCUITest バンドルが DerivedData/Build ディレクトリにビルドされます。 アプリと XCUITest バンドルは、 DerivedData/Build/Products/Debug-iphoneos/ ディレクトリに配置されます。

xcrun xcodebuild -list

App Center へのテストのアップロード

テスト スイートが準備されたら、次 テストの実行を設定 テストをアップロードして実行します。

XCUITest スイートを App Center Test にアップロードする方法の例を次に示します。

# 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

App Center にテストを送信する具体的な例については、 App Center にテストを送信するこのシェル スクリプトを参照してください。

その他のスクリーンショットとテスト手順

各テスト メソッドの最後に、テスト レポートのスクリーンショットが自動的に取得されます。 各スクリーンショットは、App Center テスト レポートに個別の Test ステップとして表示されます。

アクティビティ

Apple の Activitiesを使用してテスト コードをグループ化することで、テスト メソッドの追加のラベルとスクリーンショットを生成できます。 詳細については、「 アクティビティを使用したサブステップへのテストのグループ化を参照してください。

アクティビティでテスト コードをラップするコード スニペット

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

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

手動のスクリーンショット

Activityの末尾にあるテスト レポートのスクリーンショットが自動的に生成されます。 XCUIScreen を使用してスクリーンショットをし、XCTAttachment を使用して添付ファイルを現在のActivityに追加することで、Activity内の別の時点でスクリーンショットを記録できます。 このスクリーンショットは、 Activityの末尾の既定のスクリーンショットではなく、App Center テスト レポートに表示されます。

アクティビティでスクリーンショットを生成して添付するコード スニペット

         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)