使用 Trade Federation 執行的測試的生命週期由四個獨立的階段組成,圍繞正式定義的接口進行設計。
定義的接口
- 構建提供者:提供構建以進行測試,必要時下載適當的文件。
- Target Preparer :準備測試環境,可能包括軟件安裝和設備配置。
- 測試:執行測試並收集測試結果。這可以是任何 JUnit 測試,儘管我們的IRemoteTest接口是專門為在 Trade Federation 環境中工作而設計的。
- 測試調用偵聽器(結果報告) :偵聽測試結果,通常用於將測試結果轉發到存儲庫或將它們顯示給測試運行器。
TF 中的基本測試實體是一個配置(config)。配置是一個 XML 文件,用於聲明測試的生命週期組件。
測試生命週期的這種分離旨在允許重用。使用這種設計,開發人員可以創建一次測試,然後集成人員可以創建不同的配置以在不同的環境中運行該測試。例如,他們可以創建一個在本地機器上運行測試並將結果轉儲到標準輸出的配置。然後他們可以創建第二個配置來執行相同的測試,但使用不同的測試調用偵聽器將測試結果存儲在數據庫中。第三個配置可能被設計為從某個地方的測試實驗室連續測試運行。
在這裡需要注意的是,配置及其命令行參數(由測試運行程序提供)被稱為命令。當 TF 將 Command 與ITestDevice
並執行它時,後續對象稱為Invocation 。簡而言之,一個調用包含一個完整的 TF 測試執行,貫穿其整個生命週期。
附加配置組件
階段輸出和錯誤
調用的每個階段按順序執行並具有特定目標。本節描述了每個階段的常見輸出和錯誤。
構建提供者
此階段創建並輸出一個IBuildInfo
對象,其中包含設置和運行測試所需的所有文件引用。
此階段最常見的錯誤是無法下載或找到請求的文件。
在這個階段出現錯誤導致直接報告錯誤,並且沒有運行測試。
目標準備
這個階段為被測目標設置必要的狀態。此階段可以根據給定測試調用的需要更改設備或主機設置。
此階段的常見錯誤通常包括未能將設備設置為給定狀態(例如,閃爍失敗)以及未能找到設置所需的文件。
此階段的錯誤會導致目標清理運行、錯誤報告以及不運行測試。
測試
此階段在先前準備的目標上運行請求的測試,並報告所有測試執行結果。
此階段的常見錯誤通常涉及被測目標不可用或某些錯誤導致部分執行測試。這些錯誤是影響測試執行本身的基礎設施問題,而不是單個測試用例的失敗。
此階段的錯誤會導致測試執行停止,目標清理運行,報告錯誤並獲得部分結果。
結果報告
此階段將結果和錯誤報告給配置的服務(例如,服務器和本地文件)。
儘管個別結果報告員可能有錯誤,但他們彼此隔離(一位報告員看不到另一位報告員的錯誤)。這些錯誤僅影響單個報告者自己的結果報告,並且可以在日誌中查看錯誤。