Junit5 の @Repeat アノテーションをどのように作成しますか?
また、繰り返しテストを IDE で 1 つのテストとして報告できるようにするオプションが必要です。
そして、繰り返されるそれぞれは、何らかの方法でその数を記録できるはずなので、進行状況を確認できます.
M4 以降、JUnit Jupiter は繰り返しテストの第一級のサポートを提供します。
@RepeatedTest(10)
void repeatedTest() {
// ...
}
ドキュメントとその他の例については、ユーザー ガイドを参照してください。
@RepeatedTest
が JUnit 5 で利用できるようになりました。必要なものはすべて実装されました。
通常、テスト全体を再試行する場合は、テスト内の不安定な操作を特定して再試行する方がよいことがわかります。
例: 次のコードでgetResponse()
が例外をスローする場合があるとします。Spring Retryを使用できます (他の Spring プロジェクトの有無にかかわらず使用できます)。
@Test
void somethingFlaky() {
String actual = new RetryTemplate().execute(retryContext -> getResponse());
assertEquals("Hello World!", actual);
}
この例でgetResponse()
は、 が連続して 3 回例外をスローすると、最後の試行でスローされた例外で全体的なテストが失敗します。RetryTemplate
さまざまな再試行およびバックオフ ポリシーを使用して構成できます (たとえば、8 回の再試行、試行ごとに 50 ミリ秒のスリープ、指数バックオフなど)。
このようにして、必要に応じてリソースの再試行を管理し、テスト フレームワークが最も得意とすること、つまりテストの管理 (不安定なテスト ターゲットではない) に任せることができます。
テストの柔軟な作成を可能にする拡張ポイントがないため、現在、あなたが求めていることを行う方法はありません。しかし、動的テストを生成するユーティリティ メソッドを使用して何かを実行できる場合があります。