Esta sección describe los conceptos básicos de cómo implementar un nuevo reportero de resultados y configurarlo para una prueba.
Interfaz central
Para definir un nuevo reportero de resultados en Tradefed, una clase debe implementar la interfaz ITestInvocationListener que permite recibir y manejar diferentes etapas de la invocación:
- invocaciónEmpezó
- invocaciónTerminada
- invocaciónError
Los reporteros de resultados también manejan las diferentes etapas de cada ejecución de prueba:
- testRunStarted
- pruebaEmpezó
- prueba fallida/prueba ignorada
- pruebaTerminó
- pruebaRunFailed
- testRunEnded
Ante todos estos eventos, existen dos tipos principales de reporteros de resultados, aquellos que:
- Preocúpate solo de reportar los resultados finales completos.
- Tomar medidas sobre los resultados parciales.
Result Reporter 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 al final de la invocationEnded
al punto final del resultado.
Se recomienda que los informantes amplíen CollectingTestListener
en lugar de la interfaz base para evitar volver a implementar guardar y almacenar los resultados hasta que invocationEnded
.
Result Reporter que informa resultados parciales
Este tipo generalmente 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 de qué tipo de manejo se requiere en los eventos, por lo que implementar la interfaz base suele ser la forma recomendada.
Configuración XML
La etiqueta del objeto será result_reporter
. Por ejemplo:
<result_reporter class="com.android.tradefed.result.ConsoleResultReporter">
<option name="suppress-passed-tests" value="true"/>
</result_reporter>