Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

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 pasar (debido a fallas, como problemas en la infraestructura subyacente). Puede configurar Tradefed para que realice el reintento automáticamente.

El núcleo del reintento automático 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 admite la ejecución de pruebas varias veces para detectar escamas a través de la función 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 proporciona dos opciones para habilitar la función: max-testcase-run-count y retry-strategy .

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

Reintentar fallas

Para volver a intentar 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 cierto 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 hacerlo, necesitan extender la interfaz ISupportGranularResults que declara soporte para los resultados granulares (no agregados).

Detalles de implementacion

Para habilitar el reintento automático para volver a ejecutar fallas en el nivel de caso de prueba, implemente ITestFilterReceiver .

Si no puede implementar ITestFilterReceiver, puede implementar IAutoRetriableTest para controlar manualmente cómo funciona la repetición. InstalledInstrumentationsTest es una implementación de ejemplo de esa interfaz.