Ich finde, dass normalerweise, wenn Sie einen ganzen Test wiederholen möchten, es besser ist, die flockigen Operationen innerhalb des Tests zu identifizieren und erneut zu versuchen.
z.B. Stellen Sie sich vor, dass im folgenden Code getResponse()
manchmal eine Ausnahme auslöst. Sie können Spring Retry verwenden (die Sie mit oder ohne andere Spring Projekte verwenden können):
@Test
void somethingFlaky() {
String actual = new RetryTemplate().execute(retryContext -> getResponse());
assertEquals("Hello World!", actual);
}
In diesem Beispiel, wenn getResponse()
Ausnahmen 3 Mal in Folge führen dann der gesamte Test wird mit Ausnahme in den letzten geworfen scheitern Versuch. RetryTemplate
kann mit verschiedenen Wiederholungs- und Zurückweisungsrichtlinien konfiguriert werden (z. B. 8 Mal wiederholen, 50 Millisekunden zwischen jedem Versuch, exponentielles Zurücksetzen usw.).
Auf diese Weise können Sie Ressourcen nach Bedarf verwalten und das Test-Framework verlassen, um das zu tun, was es am besten kann: Tests verwalten (und nicht flockige Testziele).
Wiederholte Testaufrufe kommen, bald: https://github.com/junit-team/junit5/pull/642 – Sormuras