結果レポーターを作成する

このページでは、新しい結果レポーターを実装してテスト用に設定する基本的な方法について説明します。

コア インターフェース

Tradefed で新しい結果レポーターを定義するには、クラスで ITestInvocationListener インターフェースを実装し、呼び出しのさまざまな段階を受け取って処理できるようにします。

  • invocationStarted
  • invocationEnded
  • invocationFailed

結果レポーターは、各テスト実行のさまざまな段階も処理します。

  • testRunStarted
  • testStarted
  • testFailed または testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

これらすべてのイベントを考慮すると、結果レポーターには主に次の 2 つのタイプがあります。

  • 最終の完全な結果の報告のみを行うもの。
  • 部分的な結果に対応するもの。

最終の完全な結果を報告する結果レポーター

このタイプは、結果を受け取る外部サービスとやり取りする場合に最も一般的です。レポーターは単純に結果を受け取って蓄積し、そのすべてを invocationEnded で結果エンドポイントに送信します。

このようなレポーターでは、ベース インターフェースではなく CollectingTestListener を拡張して、invocationEnded まで結果の再実装、保存、格納を行わないようにすることをおすすめします。

部分的な結果を報告する結果レポーター

このタイプは通常、結果を受け取ってすぐ他の場所にプッシュする場合に、結果のストリーミング アプローチに使用されます。たとえば結果をコンソールに記録するレポーターは、このタイプです。

このタイプは、イベントで必要な処理のタイプに応じて使用するため、通常はベース インターフェースを実装することをおすすめします。

XML 構成

オブジェクト タグは result_reporter です。次に例を示します。

<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
    <option name="suppress-passed-tests" value="true"/>
</result_reporter>