Ich möchte die Erstellung abbrechen, wenn jemand einen Test schreibt, der länger als 1 Sekunde dauert, aber wenn ich im perTest-Modus laufe, dauert es viel, viel länger.
Ich könnte wahrscheinlich eine benutzerdefinierte Aufgabe schreiben, die die junit-Berichte analysiert und den darauf basierenden Build nicht erfüllt, aber ich frage mich, ob jemand eine bessere Option kennt oder sich vorstellen kann.
Wiederbelebung einer alten Frage, da die Antwort kein Beispiel liefert.
Sie können ein Zeitlimit angeben
Pro Testmethode:
%Vor% Für alle Methoden in einer Testklasse mit Timeout
@Rule
:
Global für die Gesamtzeit, um alle Testmethoden in der Klasse mit einer statischen Timeout
@ClassRule
:
Und sogar Timeout (entweder @Rule
oder @ClassRule
) auf alle Klassen in Ihrer gesamten Suite anwenden :
BEARBEITEN: Das Timeout wurde vor kurzem eingestellt, um diese Initialisierung zu verwenden
%Vor%Sie sollten jetzt die Zeiteinheit angeben, da dies Ihrem Code mehr Granularität verleiht.
Wenn Sie JUnit 4 und @Test
verwenden, können Sie den Parameter timeout
angeben, der bei Tests, die länger als angegeben dauern, fehlschlägt. Nachteil ist, dass Sie es zu jeder Testmethode hinzufügen müssen.
Eine wahrscheinlich bessere Alternative ist die Verwendung von @Rule
mit org.junit.rules.Timeout
Mit diesem können Sie es pro Klasse (oder sogar in einer gemeinsamen Superklasse) tun.