本节介绍如何实现新的结果报告器并对其进行配置以进行测试的基础知识。
核心接口
为了在 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>