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.
Mit einer TestRule haben Sie die Kontrolle über die Testausführung. Um eine RetryRule zu erstellen, definieren Sie eine Klasse wie diese:
public class RetryTest {
public class RetryRule implements TestRule {
...
public Statement apply(Statement base, Description description) {
...
}
...
}
}
Fügen Sie in der Apply-Methode Ihre Wiederholungslogik um den Testaufruf ein, indem Sie die bereitgestellte base.evaluate():
public Statement apply(Statement, Description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
...
for (int i = 0; i Verwenden der RetryRule
Annotieren Sie Ihre Testklasse mit der Regel wie folgt:
...
@Rule
public Retry rule = new Retry(3);
...
Andere Optionen
Benutzerdefinierter TestRunner:
Alternativ können Sie einen benutzerdefinierten TestRunner erstellen, der BlockJUnit4ClassRunner erweitert und runChild() zur Implementierung überschreibt der Wiederholungsmechanismus.
Hinweis:
- Mit der RetryRule können Sie die Anzahl der Wiederholungen angeben, während dies beim benutzerdefinierten TestRunner nicht möglich ist.
- Sie können Anmerkungen auch verwenden, um die Wiederholungslogik selektiv anzuwenden.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3