Google se compromete a promover la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Use Suite Retry

Una suite tiende a incluir varios módulos de prueba y puede alcanzar un tamaño de cuerpo de prueba bastante grande. Por ejemplo, Android Compatibility Test Suite (CTS) incluye cientos de módulos y cientos de miles de casos de prueba.

Es posible que falle una gran cantidad de pruebas debido a un aislamiento deficiente o dispositivos que se encuentran en mal estado.

La función de reintento de la suite está destinada a abordar esos casos: le permite volver a intentar las fallas solo en lugar de las suites completas para descartar escasez y poco aislamiento. Si una prueba falla constantemente, el reintento también fallará; y obtienes una señal mucho más fuerte de que hay un problema real.

Implementar reintento de suite

El reintento de resultados implica leer los resultados anteriores y volver a ejecutar la invocación anterior.

La interfaz principal que impulsa el reintento es ITestSuiteResultLoader , que le permite cargar un resultado anterior y la línea de comando anterior.

El RetryRescheduler luego usa esta información para recrear el comando anterior y llenar algunos filtros para volver a ejecutar solo las fallas anteriores o las pruebas no ejecutadas.

Ejemplo de reintento de suite: CTS

La configuración de reintento en CTS es:

 <configuration description="Runs a retry of a previous CTS session.">
    <object type="previous_loader" class="com.android.compatibility.common.tradefed.result.suite.PreviousResultLoader" />
    <test class="com.android.tradefed.testtype.suite.retry.RetryRescheduler" />

    <logger class="com.android.tradefed.log.FileLogger">
        <option name="log-level-display" value="WARN" />
    </logger>
</configuration>
 

Esto es aplicable a la mayoría de las suites que lo extienden, por ejemplo, VTS ).

Se invocaría a través de:

 cts-tradefed run retry --retry <session>
 

La sesión se encontraría enumerando los resultados anteriores en la consola CTS:

 cts-tf > l r
Session  Pass  Fail  Modules Complete  Result Directory     Test Plan  Device serial(s)  Build ID   Product
0        2092  30    148 of 999        2018.10.29_14.12.57  cts        [serial]          P          Pixel
 

El comando original exacto se volverá a cargar y volverá a ejecutar con filtros adicionales. Esto significa que si su comando original incluía algunas opciones, también serían parte del reintento.

Por ejemplo:

 cts-tradefed run cts-dev -m CtsGestureTestCases
 

El reintento de lo anterior siempre estará limitado a CtsGestureTestCases ya que estamos reintentando un comando que solo lo involucra.

Configure el reintento para la suite de estilo CTS

Para que el reintento funcione, los resultados anteriores deben exportarse en formato proto. Se debe agregar lo siguiente:

 <result_reporter class="com.android.compatibility.common.tradefed.result.suite.CompatibilityProtoResultReporter" />
 

Esto debe agregarse a la configuración XML del comando principal, y dará como resultado que se test-record.pb archivo test-record.pb en la carpeta de resultados.

El reintento CTS luego carga datos de una combinación de test-record.pb y test_result.xml existente para preparar la invocación de reintento.