運行 XCTest

本指南介紹如何準備 XCTest 以在 Firebase 測試實驗室中進行測試。

第 1 步:配置項目的派生資料位置

Xcode 將編譯的 iOS 工件(包括您建立的任何測試)放置在派生資料目錄中。如果您願意,可以保留目錄的預設位置,但為檔案選擇一個更容易存取的位置通常會很有幫助,特別是如果您要經常使用測試實驗室運行測試的話:

  1. 在 Xcode 中開啟您的專案。
  2. 在 macOS 功能表列中,選擇“檔案” > “專案設定...”
  3. 派生資料下拉清單從預設位置變更為自訂位置
  4. 在下拉清單下方的欄位中,選擇 Xcode 輸出測試的位置。 (這是您的FOLDER_WITH_TEST_OUTPUT

第 2 步:建立通用測試文件

測試實驗室使用XCTest框架執行單元測試和 UI 測試。要在測試實驗室裝置上運行應用程式的 XCTest,請建立它以在通用 iOS 裝置上進行測試:

  1. 從 Xcode 工作區視窗頂部的裝置下拉清單中,選擇Generic iOS Device
  2. 在 macOS 功能表列中,選擇「產品」 > “建置” > “測試”

作為替代方案,您可以從命令列建立 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. 成功建置測試後,將其壓縮以上傳到測試實驗室:

    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 _iphoneos DEPLOYMENT_TARGET -arm64.xctestrun並壓縮它們。

第 5 步:(可選)在本地運行測試

在使用測試實驗室運行測試之前,您可以使用 USB 連接裝置在本地運行它以品質檢查其行為:

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

下一步

Firebase 控制台gcloud CLI中上傳並執行您的測試。