Tentar lidar com falhas de teste pouco frequentes devido a ações urgentes em grandes conjuntos de testes pode ser frustrante. A boa notícia é que você pode implementar uma TestRule para tentar novamente testes com falha.
Uma TestRule oferece controle sobre a execução do teste. Para criar uma RetryRule, defina uma classe como esta:
public class RetryTest {
public class RetryRule implements TestRule {
...
public Statement apply(Statement base, Description description) {
...
}
...
}
}
No método apply, insira sua lógica de nova tentativa em torno da chamada de teste usando base.evaluate() fornecida:
public Statement apply(Statement, Description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
...
for (int i = 0; i Usando a RetryRule
Anote sua classe de teste com a regra assim:
...
@Rule
public Retry rule = new Retry(3);
...
Outras opções
Custom TestRunner:
Como alternativa, você pode criar um TestRunner personalizado que estenda BlockJUnit4ClassRunner e substitua runChild() para implementar o mecanismo de nova tentativa.
Nota:
- A RetryRule permite que você especifique o número de novas tentativas, enquanto o TestRunner personalizado não.
- Você também pode usar anotações para aplicar a lógica de nova tentativa seletivamente.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3