El ciclo de vida de una prueba ejecutada con Trade Federation se compone de cuatro etapas independientes, diseñadas en torno a interfaces definidas formalmente.
Interfaces definidas
- Proveedor de compilación: Proporciona una compilación para probar y descarga los archivos adecuados si es necesario.
- Target Preparer: Prepara el entorno de prueba, lo que puede incluir la instalación de software y la configuración del dispositivo.
- Probar: Ejecuta pruebas y recopila los resultados. Puede ser cualquier prueba de JUnit, aunque nuestra interfaz IRemoteTest está diseñada específicamente para funcionar bien en el entorno de Trade Federation.
- Objeto de escucha de invocación de prueba (informes de resultados): Escucha los resultados de las pruebas, por lo general, con el fin de reenviarlos a un repositorio o mostrarlos en Test Runner.
La entidad de prueba fundamental en TF es una configuración (config). Una configuración es un archivo XML que declara los componentes del ciclo de vida de una prueba.
Esta separación del ciclo de vida de la prueba está diseñada para permitir la reutilización. Con este diseño, el desarrollador puede crear una prueba una vez y, luego, el integrador puede crear diferentes configuraciones para ejecutar esa prueba en diferentes entornos. Por ejemplo, podrían crear una configuración que ejecute una prueba en una máquina local y volque el resultado en stdout. Luego, podría crear una segunda configuración que ejecutaría esa misma prueba, pero usaría un objeto de escucha de invocación de prueba diferente para almacenar los resultados de la prueba en una base de datos. Se podría diseñar una tercera configuración para ejecutar pruebas de forma continua desde un lab de pruebas en algún lugar.
Es conveniente tener en cuenta que una configuración junto con sus argumentos de línea de comandos (como los proporciona el Ejecutador de pruebas) se conoce como comando. Cuando TF vincula un comando con un ITestDevice
y lo ejecuta, el objeto posterior se conoce como invocación.
En resumen, una invocación abarca una ejecución completa de la prueba de TF durante todo su ciclo de vida.
Componentes de configuración adicionales
- Restablecimiento de dispositivos: Es un mecanismo para recuperar la comunicación del dispositivo si se pierde.
- Registrador: Recopila datos de registro de Tradefed.
Salida y errores de la etapa
Cada etapa de una invocación se ejecuta de forma secuencial y tiene un objetivo específico. En esta sección, se describen los resultados y errores habituales de cada etapa.
Cómo crear un proveedor
En esta etapa, se crea y genera un objeto IBuildInfo
que contiene todas las referencias de archivos necesarias para configurar y ejecutar las pruebas.
El error más común en esta etapa es no poder descargar o encontrar los archivos solicitados.
Un error en esta etapa genera que se informe directamente el error y no se ejecuten pruebas.
Preparación del objetivo
En esta etapa, se configuran los estados necesarios para el objetivo en prueba. Esta etapa puede alterar la configuración del dispositivo o del host según sea necesario para la invocación de prueba determinada.
Los errores comunes en esta etapa suelen ser la imposibilidad de configurar el dispositivo en un estado determinado (por ejemplo, no se puede realizar el proceso de actualización) y la imposibilidad de encontrar los archivos necesarios para la configuración.
Un error en esta etapa hace que se ejecute la limpieza de destino, se informe el error y no se ejecuten pruebas.
Pruebas
En esta etapa, se ejecutan las pruebas solicitadas en el destino preparado previamente y se informan todos los resultados de la ejecución de la prueba.
Los errores comunes en esta etapa suelen ser que el objetivo en prueba no está disponible o que algún error causa la ejecución parcial de las pruebas. Estos errores son problemas de infraestructura que afectan la ejecución de la prueba en sí, en lugar de una falla de un solo caso de prueba.
Un error en esta etapa hace que se detenga la ejecución de la prueba, se ejecute la limpieza de destino, se informe el error y se obtengan resultados parciales.
Informes de resultados
En esta etapa, se informan los resultados y los errores a los servicios configurados (por ejemplo, los servidores y los archivos locales).
Aunque los generadores de informes de resultados individuales pueden tener errores, están aislados entre sí (un generador de informes no ve los errores de otro). Estos errores solo afectan los informes de resultados de un usuario en particular, y se pueden ver en los registros.