Crea un generador de informes de resultados

En esta página, se describen los conceptos básicos para implementar un nuevo generador de informes de resultados y configurarlo para una prueba.

Interfaz principal

Para definir un nuevo reportero de resultados en Tradefed, una clase debe implementar la interfaz ITestInvocationListener que permite recibir y controlar diferentes etapas de la invocación:

  • invocationStarted
  • invocationEnded
  • invocationFailed

Los reporteros de resultados también controlan las diferentes etapas de cada ejecución de prueba:

  • testRunStarted
  • testStarted
  • testFailed o testIgnored
  • testEnded
  • testRunFailed
  • testRunEnded

Teniendo en cuenta todos estos eventos, existen dos tipos principales de registradores de resultados:

  • Solo se preocupa por informar los resultados finales completos.
  • Tomar medidas en función de los resultados parciales

Generador de informes de resultados que informa los resultados finales completos

Este tipo es el caso más común cuando se trata de interactuar con un servicio externo que recibe los resultados. El reportero simplemente recibe y acumula los resultados, y luego los envía todos en invocationEnded al extremo de resultado.

Recomendamos que esos reporteros extiendan CollectingTestListener en lugar de la interfaz base para evitar volver a implementar el guardado y el almacenamiento de los resultados hasta invocationEnded.

Es un objeto que informa resultados parciales.

Por lo general, este tipo se usa para un enfoque de transmisión de los resultados, cuando los resultados se reciben y se envían a otros lugares de inmediato. Por ejemplo, un reportero que registra los resultados en la consola sería de este tipo.

Este tipo es específico del tipo de procesamiento que se requiere en los eventos, por lo que, por lo general, se recomienda implementar la interfaz base.

Configuración de XML

La etiqueta del objeto es result_reporter. Por ejemplo:

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