テストランナーの構造

テストランナーは、呼び出しフローの実行ユニットです。そこで実際にテストが実行されます。

インターフェース

テストランナーは IRemoteTest インターフェースによって定義されます。このインターフェースはシンプルな run メソッドを提供し、テストの実行時にはこのメソッドが呼び出されます。

これにより、実行するテストの最も簡単な定義ができます。しかし、実際にテストを作成するには、ビルドやデバイスの情報など、テストを適切に記述するためにさらに詳しい情報が必要になります。そのための便利なインターフェースを次に挙げます。

基本的なインターフェース

次の 2 つのインターフェースは、ほとんどのテストの基本的なニーズに対応しているため、現在最も広く使用されています。

  • IBuildReceiver: ビルド プロバイダ ステップで作成された IBuildInfo オブジェクトをテストに取り込めます。これにはテストのセットアップに関連するすべての情報とアーティファクトが含まれています。
  • IDeviceTest: テスト対象のデバイスを表し、そのデバイスを操作する API を提供する ITestDevice オブジェクトを TF が受信できるようにします。

高度なインターフェース

追加のインターフェースとして、テストハーネスとテストランナー間でより複雑なやり取りができるものがあります。

  • ITestFilterReceiver: 特定のテストのみを実行するフィルタのセットをテストで受け取れます。これは、テストのサブセットを実行するときに役立ちます。
  • ITestCollector: テストランナーが実際にテストを実行する代わりに、テストのドライランのみを実行できるようにします。これは、すべてのテストケースのリストを収集するときに役立ちます。

既存のテストランナー

さまざまなテストランナーが存在します。主なテストタイプは次のとおりです。

上記以外にも、起動テストなどの機能テストに特化した多数のカスタム テストランナーが存在しています。

新しいテストランナーを作成する

新しいテストランナーの作成についての詳しいガイダンスは、テストの作成に関するセクションをご覧ください。