本指南介紹如何準備 XCTest 以在 Firebase 測試實驗室中進行測試。
第 1 步:配置項目的派生數據位置
Xcode 將編譯的 iOS 工件(包括您構建的任何測試)放置在派生數據目錄中。如果您願意,可以保留該目錄的默認位置,但為文件選擇一個更容易訪問的位置通常會很有幫助,特別是如果您要經常使用測試實驗室運行測試的話:
- 在 Xcode 中打開您的項目。
- 在 macOS 菜單欄中,選擇“文件” > “項目設置...”
- 將派生數據下拉列表從默認位置更改為自定義位置。
- 在下拉列表下方的字段中,選擇 Xcode 輸出測試的位置。 (這是您的FOLDER_WITH_TEST_OUTPUT )
第 2 步:構建通用測試文件
測試實驗室使用XCTest框架運行單元測試和 UI 測試。要在測試實驗室設備上運行應用程序的 XCTest,請構建它以在通用 iOS 設備上進行測試:
- 從 Xcode 工作區窗口頂部的設備下拉列表中,選擇Generic iOS Device 。
- 在 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 步:簽署測試並驗證
確保應用程序和測試中的所有工件都已簽名。例如,您可以通過 Xcode 指定配置文件和身份等簽名設置來執行此操作。有關更多信息,請參閱Apple 代碼簽名。
通過運行
codesign --verify --deep --verbose /path/to/MyApp.app
驗證應用程序簽名,其中“MyApp”是解壓文件夾中應用程序的名稱。這因每個項目而異。預期輸出為MyApp.app: valid on disk
。如果您正在運行 XCUITest,則需要通過運行
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
來驗證測試和運行程序,其中“MyTest”是運行程序內部的名稱解壓後的文件夾。這因每個項目而異。預期輸出為MyTest-Runner.app: valid on disk
。
第 4 步:打包您的應用程序並測試上傳
成功構建測試後,將其壓縮以上傳到測試實驗室:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
您還可以通過手動壓縮測試文件來打包測試:
打開 Finder 並導航至
FOLDER_WITH_TEST_OUTPUT
。打開以您的項目名稱作為前綴的文件夾,然後導航到其中的
Build/Products
文件夾。選擇文件夾
Debug-iphoneos
和YOUR_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中上傳並運行測試。