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

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

定義されたインターフェース

  • ビルド プロバイダー: テストするビルドを提供し、必要に応じて適切なファイルをダウンロードします。
  • ターゲット準備者: ソフトウェアのインストールやデバイスの構成など、テスト環境を準備します。
  • テスト: テストを実行し、テスト結果を収集します。これは任意の JUnit テストである可能性がありますが、 IRemoteTestインターフェイスは Trade Federation 環境で適切に動作するように特別に設計されています。
  • テスト呼び出しリスナー (結果レポート) : 通常、テスト結果をリポジトリに転送したり、テスト ランナーに表示したりする目的で、テスト結果をリッスンします。

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

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

ここで、Configuration とそのコマンドライン引数 (テスト ランナーによって提供される) はCommandとして知られていることに注意すると便利です。 TF が Command とITestDevice組み合わせて実行すると、後続のオブジェクトはInvocationと呼ばれます。つまり、呼び出しには、ライフサイクル全体にわたる完全な TF テストの実行が含まれます。

追加の構成コンポーネント

  • デバイス回復: デバイス通信が失われた場合に回復するメカニズム。
  • Logger : トレードフェドされたログ データを収集します。

ステージ出力とエラー

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

ビルドプロバイダー

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

この段階で最も一般的なエラーは、要求されたファイルのダウンロードまたは検索の失敗です。

この段階でエラーが発生すると、エラーが直接報告され、テストは実行されません。

ターゲットの準備

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

この段階での一般的なエラーには、通常、デバイスを特定の状態にセットアップできないこと (フラッシュの失敗など) や、セットアップに必要なファイルが見つからないことが含まれます。

この段階でエラーが発生すると、ターゲットのクリーンアップが実行され、エラーが報告され、テストは実行されません。

テスト

このステージでは、事前に準備されたターゲット上で要求されたテストを実行し、すべてのテスト実行結果を報告します。

この段階での一般的なエラーには、通常、テスト対象のターゲットが利用できないことや、テストの部分的な実行を引き起こす何らかのエラーが含まれます。これらのエラーは、単一のテスト ケースの失敗ではなく、テストの実行自体に影響を与えるインフラストラクチャの問題です。

この段階でエラーが発生すると、テストの実行が停止し、ターゲットのクリーンアップが実行され、エラーが報告され、部分的な結果が得られます。

結果報告

このステージでは、構成されたサービス (サーバーやローカル ファイルなど) に結果とエラーを報告します。

個々の結果レポーターにエラーが発生する可能性がありますが、それらは相互に分離されています (あるレポーターが別のレポーターのエラーを認識することはありません)。これらのエラーは、個々のレポーター自身の結果レポートにのみ影響し、エラーはログで確認できます。