Maison  >  Article  >  Java  >  Comment réessayer instantanément les tests JUnit ayant échoué ?

Comment réessayer instantanément les tests JUnit ayant échoué ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 04:55:02940parcourir

How to Retry Failed JUnit Tests Instantly?

Réessayez instantanément les tests JUnit ayant échoué

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

Créer une RetryRule

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>

Utilisation de la RetryRule

Annotez votre classe de test avec la règle comme ceci :

<code class="java">...
@Rule
public Retry rule = new Retry(3);
...</code>

Autres options

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 :

  • La RetryRule permet vous devez spécifier le nombre de tentatives, contrairement au TestRunner personnalisé.
  • Vous pouvez également utiliser des annotations pour appliquer la logique de nouvelle tentative de manière sélective.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn