O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Usar Suite Repetir

Um conjunto tende a incluir vários módulos de teste e pode atingir um tamanho de corpus de teste bastante grande. Por exemplo, a compatibilidade Android Test Suite (CTS) inclui centenas de módulos e centenas de casos milhares de teste.

Torna-se possível que uma grande quantidade de testes falhe devido a um isolamento insuficiente ou dispositivos que entram em um estado ruim.

O recurso de nova tentativa do pacote destina-se a resolver esses casos: ele permite que você tente novamente as falhas apenas em vez dos pacotes completos, a fim de descartar falhas e isolamento insuficiente. Se um teste estiver falhando consistentemente, a nova tentativa também falhará; e você obtém um sinal muito mais forte de que há um problema real.

Implementar nova tentativa do pacote

A nova tentativa de resultados envolve a leitura dos resultados anteriores e a nova execução da chamada anterior.

A interface principal dirigindo a nova tentativa é ITestSuiteResultLoader , que lhe permite carregar um resultado anterior, ea linha de comando anterior.

O RetryRescheduler utiliza essas informações para recriar o comando anterior e preencher alguns filtros, a fim de apenas os fracassos anteriores re-run ou testes não executados.

Repetição do pacote de exemplo: CTS

A configuração de nova tentativa no CTS é:

<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>

Isto é aplicável para a maioria das suites que a estendem, por exemplo VTS ).

Ele seria invocado por meio de:

cts-tradefed run retry --retry <session>

A sessão seria encontrada listando os resultados anteriores no console 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

O comando original exato será recarregado e executado novamente com filtros extras. Isso significa que, se o comando original incluísse algumas opções, elas também fariam parte da nova tentativa.

Por exemplo:

cts-tradefed run cts-dev -m CtsGestureTestCases

A repetição do acima seria sempre limitada a CtsGestureTestCases uma vez que estamos repetindo um comando que envolveu apenas isso.

Configure a nova tentativa para o pacote de estilo CTS

Para que a nova tentativa funcione, os resultados anteriores precisam ser exportados em formato proto. O seguinte precisa ser adicionado:

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

Isso precisa ser adicionada à configuração XML do comando principal, e que irá resultar em um test-record.pb arquivo a ser criado na pasta resultado.

A repetição do CTS, em seguida, carrega dados a partir de uma combinação do test-record.pb e a existente test_result.xml para preparar a invocação de repetição.