このガイドでは、Firebase Test Lab でテストを行うために XCTest を準備する方法について説明します。
ステップ 1: プロジェクトの Derived Data の場所を構成する
Xcode は、ビルドしたテストなどのコンパイル済み iOS アーティファクトを、Derived Data ディレクトリに配置します。このディレクトリの場所は、希望に応じてデフォルト設定もそのまま使用できますが、Test Lab でテストを頻繁に実行する場合は、ファイルにアクセスしやすい場所を選択した方が便利です。
- Xcode でプロジェクトを開きます。
- macOS のメニューバーで、[File] > [Project Settings...] を選択します。
- [Derived Data] プルダウンを [Default Location] から [Custom Location] に変更します。
- プルダウンの下のフィールドで、Xcode がテストを出力する場所を選択します(この場所が FOLDER_WITH_TEST_OUTPUT になります)。
ステップ 2: 汎用のテストファイルを作成する
Test Lab は、XCTest フレームワークを使用して単体テストと UI テストを実行します。Test Lab デバイスでアプリの XCTest を実施するには、汎用 iOS デバイスでのテスト用に XCTest をビルドします。
- Xcode ワークスペース ウィンドウの上部にあるデバイスのプルダウンから、[Generic iOS Device] を選択します。
- macOS のメニューバーで、[Product] > [Build For] > [Testing] を選択します。
または、コマンドラインから 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 でプロファイルや ID のプロビジョニングなどの署名設定を指定して確認できます。詳細については、Apple コード署名をご覧ください。
codesign --verify --deep --verbose /path/to/MyApp.app
を実行してアプリの署名を検証します。ここで、「MyApp」は解凍したフォルダ内にあるアプリの名前です。これはプロジェクトによって異なります。想定される出力はMyApp.app: valid on disk
です。XCUITest を実行している場合は、
codesign --verify --deep --verbose /path/to/MyTest-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_iphoneosDEPLOYMENT_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 CLI で、テストをアップロードして実行する。