TF テストのライフサイクル

Trade Federation を使用して実行されるテストのライフサイクルは、正式に定義されたインターフェースを中心に設計された 4 つの個別のステージで構成されます。

定義済みインターフェース

  • ビルド プロバイダ: テスト対象のビルドを提供し、必要に応じて適切なファイルをダウンロードします。
  • ターゲット作成ツール: テスト環境を準備します。ソフトウェアのインストールとデバイスの設定を行う場合もあります。
  • テスト: テストを実行し、テスト結果を収集します。これはなんらかの JUnit テストですが、IRemoteTest インターフェースは、特に Trade Federation 環境で適切に機能するように設計されています。
  • テスト呼び出しリスナー(結果レポート): テスト結果をリッスンします。通常は、テスト結果をリポジトリに転送するかテストランナーに表示する目的で使用します。

TF の基本的なテスト エンティティは、構成(config)です。config は、テストのライフサイクル コンポーネントを宣言する XML ファイルです。

このようなテストのライフサイクルの分離は、再利用を目的としています。この設計により、開発者がテストを 1 つ作成すると、インテグレータはさまざまな構成を作成してさまざまな環境でそのテストを実行できます。たとえば、ローカルマシンでテストを実行して結果を stdout にダンプする構成を作成できます。次に、同じテストを実行する 2 つ目の構成を作成し、今度は別のテスト呼び出しリスナーを使用してテスト結果をデータベースに格納できます。3 つ目の構成は、テストラボのいずれかの場所から継続的にテストを実行するように設計できます。

ここで、構成とそのコマンドライン引数(テストランナーによって指定されます)を合わせてコマンドと呼ぶことに注意してください。さらに、TF がコマンドと ITestDevice を組み合わせて実行する場合、後続のオブジェクトを呼び出しと呼びます。つまり、呼び出しは、ライフサイクル全体にわたる完全な TF テスト実行を包含する概念です。

その他の構成コンポーネント

ステージの出力とエラー

呼び出しの各ステージは順番に実行され、それぞれに特定の目標があります。このセクションでは、各ステージの一般的な出力とエラーについて説明します。

ビルド プロバイダ

このステージでは、テストの設定と実行に必要なすべてのファイル参照を含む IBuildInfo オブジェクトを作成して出力します。

このステージで最もよくあるエラーは、リクエストされたファイルのダウンロードまたは検索の失敗です。

このステージでエラーが発生した場合は、エラーが直接レポートされ、テストは開始されません。

ターゲットの作成

このステージでは、テストするターゲットに必要な状態を設定します。このステージでは、必要に応じて、特定のテスト呼び出しに対してデバイスまたはホストの設定を変更できます。

このステージでよくあるエラーは、デバイスを特定の状態に設定できないエラー(フラッシュの失敗など)や、設定に必要なファイルが見つからないエラーです。

このステージでエラーが発生した場合は、ターゲットでクリーンアップが実行され、エラーがレポートされ、テストは開始されません。

テスト

このステージでは、リクエストされたテストを前のステージで作成したターゲットで実行し、すべてのテスト実行結果をレポートします。

このステージでよくあるエラーは、テストするターゲットを使用できないエラーや、テストの一部のみが実行されるエラーです。こうしたエラーは 1 つのテストケースに限られた問題ではなく、テスト実行そのものに影響するインフラストラクチャの問題です。

このステージでエラーが発生した場合は、テストの実行が中止され、ターゲットのクリーンアップが実行され、エラーがレポートされ、部分的な結果が返されます。

結果レポート

このステージでは、構成済みのサービス(サーバーやローカル ファイルなど)に結果とエラーをレポートします。

個々の結果レポーターがエラーをレポートしますが、エラーは相互に分離されています(あるレポーターは別のレポーターのエラーを表示しません)。これらのエラーは個々のレポーターの結果レポートにのみ影響します。エラーはログで確認できます。