02
把測試入口固定在 lane,並對照執行方式
先在 Fastfile 建立可重複呼叫的 lane,將專案路徑、scheme、測試計畫及目的地寫清楚。以下範例中的值均為佔位符,請換成專案設定和遠端實際可用的模擬器:
lane :test_remote do
scan(
project: "<專案路徑>.xcodeproj",
scheme: "<測試 Scheme>",
testplan: "<測試計畫>",
devices: ["<遠端可用的 Simulator 名稱>"],
output_directory: "<測試輸出目錄>"
)
end
若專案使用 workspace,應按專案實際結構選擇對應輸入,不要同時填入不適用的專案資訊。scan 與 run_tests 的參數和行為可能隨 fastlane 文件及專案環境而異;調整前應核對官方 run_tests 參數文件與專案本身的設定。
| 執行方式 |
適合用途 |
主要優點 |
需要留意 |
scan 寫入 Fastfile lane |
團隊重複執行、接入 CI |
專案可保存共用入口與設定,較容易檢視變更 |
lane 的輸入與輸出路徑必須對應遠端工作目錄 |
fastlane run_tests |
手動確認 action 或短暫排查 |
可直接呼叫測試 action,適合檢查參數與執行回應 |
若參數分散在終端命令,需另行確保 CI 使用一致設定 |
| 直接呼叫 Xcode 命令列測試 |
核對 fastlane 以外的執行層 |
可協助辨別問題是否來自測試工具入口 |
命令與產物設定應依 Xcode 文件及專案需求管理 |
這不是哪種方式「一定比較快」的性能排名,而是維護方式的取捨:若團隊要重複執行並留存設定,lane 通常更容易審查;若是在定位 action 參數,直接執行 fastlane run_tests 可作為對照。fastlane 的 CI 整合文件也將 fastlane 命令放在 CI 工作流程中使用,但實際環境變數、工作目錄及結果保存仍須由團隊設定。
若測試依賴不同的測試集合或執行配置,請確認 scheme 及測試計畫選擇正確。Apple 的測試計畫文件說明測試計畫如何組織測試;這有助於避免把「跑了某個 scheme」誤認為「跑了所有預期測試」。