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

Usar suite Reintentar

Una suite tiende a incluir varios módulos de prueba y puede alcanzar un tamaño de corpus de prueba bastante grande. Por ejemplo, el androide de compatibilidad del conjunto de pruebas (CTS) incluye cientos de módulos y cientos de miles los casos de prueba.

Es posible que una gran cantidad de pruebas fallen 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 la falta de defectos y el aislamiento deficiente. 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 el reintento de la suite

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

La interfaz principal de conducir el reintento es ITestSuiteResultLoader , lo que le permite cargar un resultado previo, y la línea de comandos anterior.

El RetryRescheduler utiliza esta información para recrear la orden anterior y llenar algunos filtros con el fin de re-ejecutar sólo los fracasos anteriores o pruebas no ejecutados.

Ejemplo de reintento de la 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 se 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 recargará 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 los anteriores siempre se limita a CtsGestureTestCases ya que estamos de volver a intentar un comando que sólo interviene él.

Configurar reintento para suite de estilo CTS

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

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

Esto necesita ser añadido a la configuración XML del comando principal, y dará lugar a una test-record.pb archivo que se creará en la carpeta resultado.

El reintento de CTS a continuación, carga los datos de una combinación de la test-record.pb y el vigente test_result.xml para preparar la invocación de reintento.