再試行ルールを使用した失敗した JUnit テストの再試行
JUnit テストは、テスト対象システムの予期しない遅延により失敗することがあります。このような失敗を軽減するには、再試行ルールを使用して、失敗したテストに 2 回目のチャンスを与えることができます。
再試行ルールを実装するには、ルールを拡張してカスタム ルールを作成します。 apply() メソッドは、再試行ループを含むテスト周りのロジックを定義します:
<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>
@Rule を使用してテスト ケースに再試行ルールを適用します:
<code class="java">public class RetryTest { @Rule public Retry retry = new Retry(3); // Test methods... }</code>
カスタム TestRunner の使用
または、BlockJUnit4ClassRunner を拡張し、runChild() メソッドをオーバーライドして再試行ロジックを組み込むカスタム TestRunner を作成することもできます。このメソッドは、個々のテスト メソッドの実行方法をオーバーライドします。
結論
再試行ルールまたはカスタム TestRunner を使用すると、JUnit テストを強化して一時的なエラーを処理し、厳しい条件下でもテストの信頼性を確保します。
以上が再試行ルールを使用して JUnit テストの一時的な失敗を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。