アップロードのための 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)