測試執行工具是呼叫流程的執行單元。測試實際執行的位置。
介面
測試執行器是透過 IRemoteTest 介面定義,這個介面提供簡單的 run
方法,可在測試執行時呼叫。
這樣就能以最簡單的方式定義測試執行。但在實務上,測試編寫人員需要更多資訊才能正確編寫測試,通常是建構和裝置資訊。這時下列介面就能派上用場。
基本
這兩個介面是目前最廣泛使用的介面,可滿足大多數測試的基本需求。
- IBuildReceiver
可讓測試取得在 build 提供者步驟中建立的
IBuildInfo
物件,其中包含與測試設定相關的所有資訊和構件。 - IDeviceTest 可讓 TF 接收代表受測裝置的
ITestDevice
物件,並提供與該物件互動的 API。
進階版
還有其他介面可讓測試架構和測試執行器之間進行更複雜的互動:
- ITestFilterReceiver,可讓測試接收一組篩選器,只執行特定測試。這項功能有助於執行部分測試。
- ITestCollector:測試執行器可藉此僅「試執行」測試,而非實際執行測試。這有助於收集所有測試案例的清單。
現有測試執行器
目前已有各種測試執行器,部分適用於主要測試類型:
- AndroidJUnitTest / InstrumentationTest (與裝置端的 AJUR 相關聯)
- GTest (裝置和主機端),搭配 googletest 程式庫
- 主機驅動測試 (在主機上執行的 Java 測試,並從該處呼叫裝置)
- 純 Java 單元測試 (我們的執行器會執行這兩項測試)
- Python 測試
- Google Benchmark 測試,搭配基準測試程式庫
除了上述項目,還有大量自訂測試執行工具,可用於某些功能測試的專門用途,例如開機測試。
編寫新的測試執行器
如需撰寫新測試執行器的更多指引,請參閱「撰寫測試」一節。