创建结果报告器

本页介绍了如何实现新的结果报告器并为测试配置它的基本知识。

核心接口

为了在 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>