O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Repetição de teste automática

Um teste pode falhar por qualquer motivo e, às vezes, simplesmente reexecutá-lo é suficiente para que ele seja aprovado novamente (devido à instabilidade, como problemas na infraestrutura subjacente). Você pode configurar o Tradefed para conduzir a nova tentativa automaticamente.

O núcleo da repetição automática é evitar a nova execução de todos os testes; ele reexecuta apenas os testes que falharam, resultando em grande economia no tempo de execução.

Tradefed também oferece suporte à execução de testes várias vezes para detectar falhas por meio do recurso de iterações . Nesse caso, todos os testes serão executados novamente e o teste falhará se alguma das iterações falhar.

Ativando o recurso

A nova tentativa automática é controlada por meio do objeto RetryDecision, que fornece duas opções para ativar o recurso: max-testcase-run-count e retry-strategy .

max-testcase-run-count orienta o número de novas tentativas ou iterações que serão feitas. Ele define um limite superior para evitar tentativas indefinidas. retry-strategy conduz a decisão de como tentar novamente; consulte as seções a seguir para obter mais detalhes.

Tentativas de falhas

Para repetir as falhas de teste, use as seguintes opções:

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

Isso tentará novamente a falha até que ela passe ou até que o número máximo de tentativas seja atingido, o que ocorrer primeiro.

Iterações

Para executar novamente os testes por um certo tempo, as seguintes opções podem ser usadas:

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

Como são os resultados?

Os relatores de resultados, por padrão, receberão os resultados agregados de todas as tentativas.

Por exemplo: uma Fail e uma Pass para RETRY_ANY_FAILURE irá resultar em um agregado Pass desde a repetição conseguiu limpar a falha.

É possível que os repórteres recebam os resultados não agregados. Para fazer isso, eles precisam estender a interface ISupportGranularResults que declara o suporte para os resultados granulares (não agregados).

Detalhes de implementação

Para ativar a nova tentativa automática para executar novamente as falhas no nível do caso de teste, implemente ITestFilterReceiver .

Se você não pode implementar ITestFilterReceiver, pode implementar IAutoRetriableTest para controlar manualmente como a nova execução opera. InstalledInstrumentationsTest é um exemplo de implementação dessa interface.