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 generador de informes de resultados en Tradefed, una clase debe implementar el ITestInvocationListener que permite recibir y manejar las diferentes etapas del 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 le interesa informar los resultados finales completos.
  • Toma medidas sobre los resultados parciales.

Generador de informes de resultados que informa los resultados completos finales

Este es el caso más común cuando se trata de interactuar con un servicio que recibe los resultados. El informante 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 su lugar de la interfaz base para evitar reimplementar el guardado y el almacenamiento del hasta el invocationEnded.

Informante de resultados que informa resultados parciales

Este tipo suele usarse para un enfoque de transmisión de resultados, cuando estos se reciben y se envían a otros lugares de inmediato. Por ejemplo, un reportero que registre los resultados en la consola serían de este tipo.

Este tipo es específico para qué tipo de control se requiere en los eventos, por lo que 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>