本页介绍了如何实现新的结果报告器并为测试配置它的基本知识。
核心接口
为了在 Tradefed 中定义新的结果报告器,类必须实现 ITestInvocationListener
接口,该接口允许接收和处理调用的不同阶段
invocationStarted
invocationEnded
invocationFailed
结果报告器还会处理每个测试运行的不同阶段
testRunStarted
testStarted
testFailed
或testIgnored
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>