運行 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中上傳並運行測試。