Erneuter Versuch fehlgeschlagener JUnit-Tests mit einer Wiederholungsregel
JUnit-Tests können gelegentlich aufgrund unerwarteter Verzögerungen im zu testenden System fehlschlagen. Um solche Fehler abzumildern, können Sie eine Wiederholungsregel einsetzen, um fehlgeschlagenen Tests eine zweite Chance zu geben.
Um eine Wiederholungsregel zu implementieren, erstellen Sie eine benutzerdefinierte Regel, indem Sie die Regel erweitern. Die apply()-Methode definiert die Logik rund um den Test, einschließlich der Wiederholungsschleife:
<code class="java">public class Retry implements TestRule { private int retryCount; public Retry(int retryCount) { this.retryCount = retryCount; } public Statement apply(Statement base, Description description) { return statement(base, description); } private Statement statement(final Statement base, final Description description) { return new Statement() { @Override public void evaluate() throws Throwable { Throwable caughtThrowable = null; // Retry loop for (int i = 0; i < retryCount; i++) { try { base.evaluate(); return; } catch (Throwable t) { caughtThrowable = t; System.err.println(description.getDisplayName() + ": run " + (i+1) + " failed"); } } System.err.println(description.getDisplayName() + ": giving up after " + retryCount + " failures"); throw caughtThrowable; } }; } }</code>
Wenden Sie die Wiederholungsregel mit @Rule auf Ihren Testfall an:
<code class="java">public class RetryTest { @Rule public Retry retry = new Retry(3); // Test methods... }</code>
Verwenden eines benutzerdefinierten TestRunner
Alternativ können Sie einen benutzerdefinierten TestRunner erstellen, der erweitert wird BlockJUnit4ClassRunner und überschreibt die runChild()-Methode, um Wiederholungslogik einzuschließen. Diese Methode überschreibt die Art und Weise, wie einzelne Testmethoden ausgeführt werden.
Fazit
Durch die Verwendung einer Wiederholungsregel oder eines benutzerdefinierten TestRunners können Sie Ihre JUnit-Tests verbessern, um vorübergehende Fehler zu bewältigen und sorgen für Testzuverlässigkeit auch unter anspruchsvollen Bedingungen.
Das obige ist der detaillierte Inhalt vonWie können Sie mit einer Wiederholungsregel mit vorübergehenden Fehlern in JUnit-Tests umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!