本指南說明如何準備 XCTest,以便在 Firebase Test Lab 中進行測試。
步驟 1:設定專案的衍生資料位置
Xcode 會將編譯的 iOS 構件 (包括您建構的任何測試) 放在 DerivedData 目錄中。您可以保留該目錄的預設位置,但通常選擇較容易存取的位置來存放檔案會很有幫助,尤其是您要經常執行測試時:Test Lab
- 在 Xcode 中開啟專案。
- 在 macOS 選單列中,依序選取「File」 >「Project Settings...」
- 將「衍生資料」下拉式選單從「預設位置」變更為「自訂位置」。
- 在下拉式選單下方的欄位中,選取 Xcode 輸出測試結果的位置。(這是你的 FOLDER_WITH_TEST_OUTPUT)
步驟 2:建立一般測試檔案
Test Lab 會使用 XCTest 架構執行單元測試和 UI 測試。如要在 Test Lab 裝置上執行應用程式的 XCTest,請建構應用程式,以便在「Generic iOS Device」上進行測試:
- 在 Xcode 工作區視窗頂端的裝置下拉式選單中,選取「Generic iOS Device」。
- 在 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:簽署測試並驗證
請務必簽署應用程式和測試中的所有構件。舉例來說,您可以透過 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:封裝應用程式並測試上傳
測試建構成功後,請將其壓縮為 ZIP 檔案,然後上傳至 Test Lab:
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_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 中上傳及執行測試。