El ciclo de vida de una prueba ejecutada con Trade Federation se compone de cuatro etapas separadas, diseñadas en torno a interfaces formalmente definidas.
Interfaces definidas
- Proveedor de compilación : proporciona una compilación para probar, descargando los archivos apropiados si es necesario.
- Target Preparer : prepara el entorno de prueba, posiblemente incluyendo la instalación del software y la configuración del dispositivo.
- Prueba : ejecuta la(s) prueba(s) y recopila los resultados de la prueba. Esta puede ser cualquier prueba JUnit, aunque nuestra interfaz IRemoteTest está diseñada específicamente para funcionar bien en el entorno de la Federación de Comercio.
- Oyente de invocación de prueba (informes de resultados) : escucha los resultados de la prueba, generalmente con el propósito de reenviar los resultados de la prueba a un repositorio o mostrarlos al Ejecutor de prueba.
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á destinada a permitir su reutilización. Usando 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 ejecutará una prueba en una máquina local y volcará el resultado en la salida estándar. Luego, podrían crear una segunda configuración que ejecutaría la misma prueba, pero usaría una 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 esa prueba continuamente desde un laboratorio de pruebas en algún lugar.
Es conveniente tener en cuenta aquí que una Configuración junto con sus argumentos de línea de comandos (tal como los proporciona Test Runner) se conoce como Comando . Cuando TF empareja un Comando con un ITestDevice
y lo ejecuta, el objeto subsiguiente se conoce como Invocación . En resumen, una Invocación abarca una ejecución de prueba TF completa, a lo largo de todo su ciclo de vida.
Componentes de configuración adicionales
- Device Recovery : mecanismo para recuperar la comunicación del dispositivo si se pierde.
- Registrador : recopila datos de registro de tradefed.
Salida de escenario y errores
Cada etapa de una invocación se ejecuta secuencialmente y tiene un objetivo específico. En esta sección se describen las salidas y los errores habituales de cada etapa.
proveedor de compilación
Esta etapa crea y genera un objeto IBuildInfo
que contiene todas las referencias de archivos necesarios para configurar y ejecutar las pruebas.
El error más común en esta etapa es la imposibilidad de descargar o encontrar los archivos solicitados.
Un error en esta etapa da como resultado un informe directo del error y no se ejecutan pruebas.
Preparación de objetivos
Esta etapa establece los estados necesarios para el objetivo bajo prueba. Esta etapa puede modificar el dispositivo o la configuración del host según sea necesario para la invocación de prueba dada.
Los errores comunes en esta etapa generalmente implican fallas en la configuración del dispositivo en un estado determinado (por ejemplo, flasheo fallido) y fallas en encontrar los archivos necesarios para la configuración.
Un error en esta etapa da como resultado que se ejecute la limpieza del objetivo, se informe del error y no se ejecute ninguna prueba.
Pruebas
Esta etapa ejecuta las pruebas solicitadas en el objetivo previamente preparado e informa todos los resultados de la ejecución de la prueba.
Los errores comunes en esta etapa generalmente implican que el objetivo bajo prueba no está disponible o algún error que causa la ejecución parcial de las pruebas. Estos errores son problemas de infraestructura que afectan la ejecución de la prueba en sí misma 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.
Informe de resultados
Esta etapa reporta los resultados y errores a los servicios configurados (por ejemplo, servidores y archivos locales).
Aunque los reporteros de resultados individuales pueden tener errores, están aislados unos de otros (un reportero no ve los errores de otro). Estos errores afectan solo a los informes de resultados de un reportero individual y los errores se pueden ver en los registros.