Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Reintento automático de prueba

Una prueba puede fallar por cualquier motivo y, a veces, simplemente volver a ejecutar la prueba es suficiente para que vuelva a aprobarse (debido a fallas, como problemas en la infraestructura subyacente). Puede configurar Tradefed para que realice el reintento automáticamente.

El núcleo de auto-reintento es evitar volver a ejecutar todas las pruebas; vuelve a ejecutar solo las pruebas fallidas, lo que se traduce en grandes ahorros en el tiempo de ejecución.

Tradefed también es compatible con la ejecución de pruebas múltiples veces con el fin de detectar la descamación a través de la característica de iteraciones. En este caso, todas las pruebas se volverán a ejecutar y la prueba fallará si falla alguna de las iteraciones.

Habilitando la función

El reintento automático se controla a través del objeto RetryDecision que ofrece dos opciones para activar la función: max-testcase-run-count y retry-strategy .

max-testcase-run-count unidades el número de reintentos o iteraciones que se intentará. Establece un límite superior para evitar volver a intentarlo para siempre. retry-strategy unidades de la decisión de cómo volver a intentar; consulte las siguientes secciones para obtener más detalles.

Inhabilitando

Utilice la siguiente opción:

--retry-strategy NO_RETRY

Reintentar fallas

Para reintentar las pruebas fallidas, utilice las siguientes opciones:

--retry-strategy RETRY_ANY_FAILURE --max-testcase-run-count X

Esto volverá a intentar el error hasta que pase o hasta que se alcance el número máximo de reintentos, lo que ocurra primero.

Iteraciones

Para volver a ejecutar las pruebas durante un tiempo, se pueden utilizar las siguientes opciones:

--retry-strategy ITERATIONS --max-testcase-run-count X

¿Cómo se ven los resultados?

Los informadores de resultados recibirán de forma predeterminada los resultados agregados de todos los intentos.

Por ejemplo: una Fail y un Pass para RETRY_ANY_FAILURE darán lugar a un agregado Pass ya que el reintento logró despejar el fracaso.

Es posible que los reporteros reciban los resultados no agregados. Para ello, es necesario extender las ISupportGranularResults interfaz que declara su apoyo a los resultados granulares (no agregadas).

Detalles de implementacion

Para habilitar el reintento automático de fallos volver a ejecutar en el nivel de casos de prueba, implementar ITestFilterReceiver .

Si no se puede poner en práctica ITestFilterReceiver, puede implementar IAutoRetriableTest para controlar manualmente el funcionamiento vuelva a ejecutar. InstalledInstrumentationsTest es un ejemplo de implementación de la interfaz.