Crea un generador de informes de resultados

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

Interfaz principal

Para definir un nuevo generador de informes 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 generadores de informes 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, hay dos tipos principales de generadores de informes de resultados: aquellos que:

  • Solo debes informar los resultados finales completos.
  • Toma medidas sobre 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 generador de informes solo recibe y acumula los resultados y, luego, los envía todos en invocationEnded al extremo de resultados.

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

Generador de informes de resultados que informa resultados parciales

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

Este tipo es específico para el tipo de control que se requiere en los eventos, por lo que se suele recomendar la implementación de 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>