Der Versuch, seltene Testfehler aufgrund zeitkritischer Aktionen in großen Testsuiten zu bewältigen, kann frustrierend sein. Die gute Nachricht ist, dass Sie eine TestRule implementieren können, um fehlgeschlagene Tests erneut zu versuchen.
Eine TestRule gibt Ihnen die Kontrolle über die Testausführung. Um eine RetryRule zu erstellen, definieren Sie eine Klasse wie diese:
<code class="java">public class RetryTest { public class RetryRule implements TestRule { ... public Statement apply(Statement base, Description description) { ... } ... } }</code>
Fügen Sie in der Apply-Methode Ihre Wiederholungslogik um den Testaufruf ein, indem Sie das bereitgestellte base.evaluate() verwenden:
<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>
Annotieren Sie Ihre Testklasse mit der Regel wie folgt:
<code class="java">... @Rule public Retry rule = new Retry(3); ...</code>
Benutzerdefinierter TestRunner:
Alternativ können Sie einen benutzerdefinierten TestRunner erstellen, der BlockJUnit4ClassRunner erweitert und runChild() überschreibt, um den Wiederholungsmechanismus zu implementieren.
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann man fehlgeschlagene JUnit-Tests sofort wiederholen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!