テストランナーは、呼び出しフローの実行ユニットです。テストランナーはテストが実際に実行される場所です。
インターフェース
テストランナーは IRemoteTest インターフェースによって定義されます。このインターフェースはシンプルな run
メソッドを提供し、テストの実行時にはこのメソッドが呼び出されます。
これにより、実行するテストの最も簡単な定義を行うことができます。しかし、実際にテストを作成するには、ビルドやデバイスの情報など、テストを適切に記述するためにさらに詳しい情報が必要になります。そのための便利なインターフェースを次に挙げます。
基本的なインターフェース
以下の 2 つのインターフェースは、ほとんどのテストの基本的なニーズに対応しているため、今日最も広く使用されています。
- IBuildReceiver: ビルド プロバイダ ステップで作成された
IBuildInfo
オブジェクトをテストに取り込むことができます。テストのセットアップに関連するすべての情報とアーティファクトが含まれています。 - IDeviceTest: テスト対象のデバイスを表し、そのデバイスを操作する API を提供する
ITestDevice
オブジェクトを TF が受信できるようにします。
高度なインターフェース
テストハーネスとテストランナー間でより複雑なやり取りを行うことを可能にする追加のインターフェースがあります。
- ITestFilterReceiver: 特定のテストのみを実行するフィルタのセットをテストで受け取ることができます。これは、テストのサブセットを実行するときに役立ちます。
- ITestCollector: テストランナーが実際にテストを実行する代わりに、テストのドライランのみを実行できるようにします。これは、すべてのテストケースのリストを収集するのに役立ちます。
既存のテストランナー
さまざまなテストランナーが存在します。主なテストタイプは次のとおりです。
- AndroidJUnitTest / InstrumentationTest(デバイス側の AJUR に関連)
- googletest ライブラリを使用した GTest(デバイスとホスト側)
- ホストドリブン テスト(ホストで実行され、ホストからデバイスを呼び出す Java テスト)
- Pure Java ユニットテスト(Google のテストランナーではどちらも実行できます)
- Python テスト
- ベンチマーク ライブラリを使用するGoogle ベンチマーク テスト
上記以外にも多数のカスタム テストランナーが存在し、起動テストなどの機能テストに特化した機能を提供します。
テストランナーの新規作成
新しいテストランナーの作成については、テストの作成に関するセクションをご覧ください。