大規模なテスト スイートで時間に敏感なアクションが原因でまれに発生するテストの失敗を処理しようとすると、イライラすることがあります。幸いなことに、TestRule を実装して失敗したテストを再試行できるということです。
TestRule を使用すると、テストの実行を制御できます。 RetryRule を作成するには、次のようなクラスを定義します。
<code class="java">public class RetryTest { public class RetryRule implements TestRule { ... public Statement apply(Statement base, Description description) { ... } ... } }</code>
apply メソッドで、提供されたbase.evaluate():
<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>RetryRule の使用次のようにテスト クラスにルールの注釈を付けます:
<code class="java">... @Rule public Retry rule = new Retry(3); ...</code>その他のオプション
カスタム TestRunner:
または、BlockJUnit4ClassRunner を拡張し、runChild() をオーバーライドして再試行メカニズムを実装するカスタム TestRunner を作成することもできます。注:
以上が失敗した JUnit テストを即座に再試行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。