Test Runner 是調用流的執行單元。這是實際運行測試的地方。
接口
測試運行器是通過IRemoteTest 接口定義的,該接口提供了一個簡單的run
方法來實現,當測試運行時將調用該方法。
這允許對測試運行進行最簡單的定義。但在實踐中,測試編寫者將需要更多信息來正確編寫他們的測試,通常是構建和設備信息。這是以下接口派上用場的地方。
基本的
這兩個接口是當今使用最廣泛的,因為它們代表了大多數測試的基本需求。
- IBuildReceiver允許測試獲取在構建提供程序步驟創建的
IBuildInfo
對象,其中包含與測試設置相關的所有信息和工件。 - IDeviceTest允許 TF 接收代表被測設備的
ITestDevice
對象並提供與之交互的 API。
先進的
還有其他接口允許測試工具和測試運行器之間進行更複雜的交互:
- ITestFilterReceiver ,它允許測試接收一組過濾器,僅用於運行某些測試。這在運行測試的子集時很有用。
- ITestCollector ,它允許測試運行者只空運行測試而不是實際執行它們。這對於收集所有測試用例的列表很有用。
現有的測試運行器
已經存在多種測試運行器,其中一些用於主要測試類型:
- AndroidJUnitTest / InstrumentationTest (與設備端的 AJUR 關聯)
- 帶有googletest 庫的GTest (設備和主機端)
- 主機驅動測試(在主機上執行並從那裡調用設備的 Java 測試)
- 純 Java 單元測試(我們的 runner 兩者都做)
- Python 測試
- 使用基準庫進行 Google 基準測試
除了上述之外,還有大量的自定義測試運行器;它們用於某些功能測試的特殊目的,例如引導測試。
編寫新的測試運行器
有關編寫新測試運行程序的更多指導,請參閱編寫測試部分。