執行 XCTest

本指南說明如何準備 XCTest 的測試環境 Firebase Test Lab。

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

Xcode 會將經過編譯的 iOS 構件 (包括您建構的任何測試) 放置在 資料目錄。您可以保留該目錄的預設位置 但通常選擇更容易存取的地點 特別是當您要使用 Test Lab 進行測試時 經常:

  1. 在 Xcode 中開啟專案。
  2. 在 macOS 選單列中,選取 檔案 >專案設定...
  3. 將「衍生資料」下拉式選單從 「Default Location」為「Custom Location」。
  4. 在下拉式選單下方的欄位中,選取要輸出 Xcode 的位置 並進行測試(這是 FOLDER_WITH_TEST_OUTPUT)

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

Test Lab 會使用 XCTest 架構。 如要在 Test Lab 裝置上執行應用程式的 XCTests,請先建構應用程式 一般 iOS 裝置:

  1. 在 Xcode 工作區視窗頂端的裝置下拉式選單中,選取 一般 iOS 裝置
  2. 在 macOS 選單列中,選取 產品 >「Build For」> >測試

或者,您也可以透過指令列建構 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. 確認應用程式和測試中的所有構件皆已簽署。舉例來說: 方法是指定簽署設定,例如佈建設定檔 和身分若需更多資訊,請參閲 Apple 程式碼簽署

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

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

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

  1. 測試建立成功後,請進行壓縮以上傳至 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-iphoneos 資料夾和 YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun 然後壓縮

步驟 5:(選用) 在本機執行測試

使用 Test Lab 執行測試之前,您可以使用 以品質檢查裝置行為:

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

後續步驟

Firebase 控制台上傳及執行測試 或是使用 gcloud CLI