執行 XCTest

本指南說明如何準備 XCTest,以便在 Firebase Test Lab 中進行測試。

步驟 1:設定專案的衍生資料位置

Xcode 會將編譯的 iOS 構件 (包括您建構的任何測試) 放置在衍生資料目錄中。您可以保留該目錄的預設位置,但通常建議您選擇更容易存取檔案的位置,尤其是如果您經常要使用 Test Lab 執行測試:

  1. 在 Xcode 中開啟專案。
  2. 在 macOS 選單列中,依序選取「File」 >「Project Settings...」
  3. 將「派生資料」下拉式選單從「預設位置」變更為「自訂位置」
  4. 在下拉式選單下方的欄位中,選取 Xcode 要輸出測試的資料夾位置。(這是您的 FOLDER_WITH_TEST_OUTPUT)

步驟 2:建構一般測試檔案

Test Lab 會使用 XCTest 架構執行單元測試和 UI 測試。如要在 Test Lab 裝置上執行應用程式的 XCTest,請建構應用程式,以便在通用 iOS 裝置上進行測試:

  1. 從 Xcode 工作區視窗頂端的裝置下拉式選單中,選取「Generic iOS Device」
  2. 在 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:簽署測試並驗證

  1. 請確認應用程式和測試中的所有構件都已簽署。舉例來說,您可以透過 Xcode 指定簽署設定,例如測試群組設定檔和身分。詳情請參閱「Apple 程式碼簽署」。

  2. 請執行 codesign --verify --deep --verbose /path/to/MyApp.app 來驗證應用程式簽名,其中「MyApp」是解壓縮資料夾中應用程式的名稱。這會因專案而異。預期的輸出內容為 MyApp.app: valid on disk

  3. 如果您要執行 XCUITest,則需要執行 codesign --verify --deep --verbose /path/to/MyTest-Runner.app 來驗證測試和執行器,其中「MyTest」是解壓縮資料夾中執行器的名稱。這項資訊會因專案而異。預期的輸出內容為 MyTest-Runner.app: valid on disk

步驟 4:封裝應用程式並測試上傳

  1. 測試成功建構後,請將其壓縮為 ZIP 檔案,然後上傳至 Test Lab

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

您也可以手動壓縮測試檔案,然後封裝測試:

  1. 開啟 Finder,然後前往 FOLDER_WITH_TEST_OUTPUT

  2. 開啟以專案名稱做為前置字串的資料夾,然後前往內部的 Build/Products 資料夾。

  3. 選取資料夾 Debug-iphoneosYOUR_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 中上傳並執行測試。