5 月 10 日開催の Google I/O で Firebase の最新情報をお届けします。今すぐ登録

XCTest の実行

このガイドでは、Firebase Test Lab でテストを行うために XCTest を準備する方法について説明します。

ステップ 1: プロジェクトの Derived Data の場所を構成する

Xcode は、ビルドしたテストなどのコンパイル済み iOS アーティファクトを、Derived Data ディレクトリに配置します。このディレクトリの場所は、希望に応じてデフォルト設定もそのまま使用できますが、Test Lab でテストを頻繁に実行する場合は、ファイルにアクセスしやすい場所を選択した方が便利です。

  1. Xcode でプロジェクトを開きます。
  2. macOS のメニューバーで、[File] > [Project Settings...] を選択します。
  3. [Derived Data] プルダウンを [Default Location] から [Custom Location] に変更します。
  4. プルダウンの下のフィールドで、Xcode がテストを出力する場所を選択します。

ステップ 2: 汎用のテストファイルを作成する

Test Lab は、XCTest フレームワークを使用して単体テストと UI テストを実行します。Test Lab デバイスでアプリの XCTest を実施するには、汎用 iOS デバイスでのテスト用に XCTest をビルドします。

  1. Xcode ワークスペース ウィンドウの上部にあるデバイスのプルダウンから、[Generic iOS Device] を選択します。
  2. macOS のメニューバーで、[Product] > [Build For] > [Testing] を選択します。

ステップ 3: アップロード用にアプリをパッケージ化する

最後に、ビルドしたテストファイルを .zip ファイルに圧縮することにより、Test Lab へのアップロード用にテストをビルドしてパッケージ化します。

  1. XCTest をビルドするには、ターミナルで次のコマンドを使用します。

    プロジェクト

    xcodebuild -project PATH/TO/YOUR_WORKSPACE.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
  2. テストが正常にビルドされたら、Test Lab にアップロードするために圧縮します。

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \
    zip -r MyTests.zip Debug-iphoneos   YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
    

テストは、テストファイルを手動で圧縮してパッケージ化することもできます。

  1. Finder を開き、Derived Data の出力先に指定したディレクトリに移動します。

  2. プロジェクト用に選択したフォルダを開き、その中の Build/Products フォルダを開きます。

  3. Debug-iphoneos フォルダと PROJECT_NAME_iphoneosDEVELOPMENT_TARGET-arm64.xctestrun フォルダを選択して圧縮します。

ステップ 4.(省略可)ローカルでテストを実行する

Test Lab でテストを実行する前に、USB 接続されたデバイスを使用してローカルでテストを実行し、その動作の品質を確認します。

xcodebuild test-without-building \
    -xctestrun "Derived Data/Build/Products/YourApp.xctestrun" \
    -destination id=your-phone-id

次のステップ

Firebase コンソールまたは gcloud CLI で、テストをアップロードして実行する。