Essayer de gérer des échecs de tests peu fréquents dus à des actions urgentes dans de grandes suites de tests peut être frustrant. La bonne nouvelle est que vous pouvez implémenter une TestRule pour réessayer les tests ayant échoué.
Une TestRule vous permet de contrôler l'exécution des tests. Pour créer une RetryRule, définissez une classe comme celle-ci :
<code class="java">public class RetryTest { public class RetryRule implements TestRule { ... public Statement apply(Statement base, Description description) { ... } ... } }</code>
Dans la méthode apply, insérez votre logique de nouvelle tentative autour de l'appel de test à l'aide de la base.evaluate() fournie :
<code class="java">public Statement apply(Statement, Description) { return new Statement() { @Override public void evaluate() throws Throwable { ... for (int i = 0; i < retryCount; i++) { ... } ... } }; }</code>
Annotez votre classe de test avec la règle comme ceci :
<code class="java">... @Rule public Retry rule = new Retry(3); ...</code>
TestRunner personnalisé :
Vous pouvez également créer un TestRunner personnalisé qui étend BlockJUnit4ClassRunner et remplace runChild() pour implémenter le mécanisme de nouvelle tentative.
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!