本節介紹如何實現新的結果報告器並對其進行配置以進行測試的基礎知識。
核心接口
為了在 Tradefed 中定義新的結果報告器,類必須實現ITestInvocationListener接口,該接口允許接收和處理調用的不同階段:
- 調用開始
- 調用結束
- 調用失敗
結果報告器還處理每個測試運行的不同階段:
- 測試運行開始
- 測試開始
- 測試失敗/測試忽略
- 測試結束
- 測試運行失敗
- 測試運行結束
鑑於所有這些事件,有兩種主要類型的結果報告者,即:
- 只關心報告最終的完整結果。
- 對部分結果採取行動。
報告最終完整結果的結果報告器
在與接收結果的外部服務交互時,這種類型是最常見的情況。報告者只需接收並累積結果,然後在invocationEnded
上將它們全部發送到結果端點。
建議那些報告者擴展CollectingTestListener
而不是基本接口,以避免重新實現保存和存儲結果直到invocationEnded
。
報告部分結果的結果報告器
這種類型通常用於結果的流式處理,當結果被接收並立即推送到其他地方時。例如,將結果記錄到控制台的報告器就是這種類型。
此類型特定於事件需要哪種類型的處理,因此實現基本接口通常是推薦的方式。
XML 配置
對象標記將是result_reporter
。例如:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>