測試運行器是呼叫流程的執行單元。這是測試實際運作的地方。
介面
測試運行器是透過IRemoteTest 介面定義的,該介面提供了一個簡單的run
方法來實現,該方法將在測試運行時呼叫。
這允許進行最簡單的測試運行定義。但在實踐中,測試編寫者將需要更多資訊來正確編寫他們的測試,通常是建置和設備資訊。這是以下介面派上用場的地方。
基本的
這兩個介面如今使用最廣泛,因為它們代表了大多數測試的基本需求。
- IBuildReceiver允許測試取得在建置提供者步驟中建立的
IBuildInfo
對象,其中包含與測試設定相關的所有資訊和工件。 - IDeviceTest允許 TF 接收代表被測設備的
ITestDevice
對象,並提供與其互動的 API。
先進的
還有其他介面允許測試工具和測試運行程式之間進行更複雜的互動:
- ITestFilterReceiver ,它允許測試接收一組僅用於運行某些測試的過濾器。這對於運行測試的子集很有用。
- ITestCollector ,它允許測試運行者僅空運行測試而不是實際執行它們。這對於收集所有測試案例的清單很有用。
現有測試運行者
已經存在各種測試運行程序,其中一些用於主要測試類型:
- AndroidJUnitTest / InstrumentationTest (與裝置端的AJUR關聯)
- GTest (裝置與主機端)與googletest 函式庫
- 主機驅動的測試(在主機上執行並從那裡呼叫設備的 Java 測試)
- 純 Java 單元測試(我們的執行程式同時進行這兩項測試)
- Python 測試
- 使用基準庫進行Google Benchmark 測試
除了上述之外,還有大量自訂測試運行程式;它們專門用於某些功能測試,例如啟動測試。
編寫一個新的測試運行程序
編寫測試部分提供了有關編寫新測試運行程式的更多指導。