Geb と Spock を使用する Grails アプリの機能テストがあります。時折、タイムアウトやその他の散発的な動作のために機能テストが失敗することがあります。TestNG を使用する以前のプロジェクトでは、retryAnalyzer を使用して、テストの実行中に再試行をトリガーし、両方の回数が失敗するかどうか (実際に失敗するかどうか) を確認します。
Spock に失敗したテストを再試行させるにはどうすればよいですか?
小さな JUnit ルール (たとえばhttps://gist.github.com/897229など) または Spock 拡張機能を作成する必要があります。おそらく、同じ仕様のインスタンスが再利用されたり、JUnit が 1 つのテストを報告するだけであったりするなど、いくつかの制限を受け入れる必要がありますが、このアプローチを完全に除外するものは何もないことを願っています。(思いつくことの 1 つは、モッキングが機能しない可能性があるということです。) Spock の将来のバージョンでは、テスト (またはその構成要素) を繰り返すことが、これらの制限を排除する第一級の概念になる可能性があります。