建立結果回報器

本頁面說明如何實作新的結果報告器,以及如何為測試設定該報告器。

核心介面

如要在 Tradefed 中定義新的結果回報器,類別必須實作 ITestInvocationListener 介面,才能接收及處理呼叫的不同階段:

  • invocationStarted
  • invocationEnded
  • invocationFailed

結果回報器也會處理每次測試執行的不同階段:

  • testRunStarted
  • testStarted
  • testFailedtestIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

考量到所有這些事件,結果回報器主要有兩種類型:

  • 只須回報最終完整結果。
  • 對部分結果採取行動。

回報最終完整結果的結果回報器

與接收結果的外部服務互動時,最常見的情況就是使用這種類型。檢舉者只會接收並累積結果,然後透過 invocationEnded 將所有結果傳送至結果端點。

建議這些記者擴充 CollectingTestListener,而不是基本介面,以免重新實作儲存結果的作業,直到 invocationEnded 為止。

回報部分結果的結果回報器

這類別通常用於結果的串流方法,也就是收到結果後立即推送至其他位置。舉例來說,如果記者將結果記錄到控制台,就會屬於這種類型。

這個型別會根據事件所需的處理方式而有所不同,因此通常建議實作基本介面。

XML 設定

物件標記為 result_reporter。例如:

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