Gibt es eine Möglichkeit, lange Laufzeiten (z. B. Stresstests) zu trennen, damit sie nicht standardmäßig in Maven 2 ausgeführt werden?

8

Wir hatten ein fortwährendes Bedürfnis hier, dass ich nicht herausfinden kann, wie ich mit den Maven 2-Werkzeugen und der Dokumentation auf Lager umgehen soll.

Einige unserer Entwickler haben sehr lange laufende JUnit-Tests (normalerweise Stresstests), die unter keinen Umständen als regulärer Teil des Build-Prozesses / nächtlichen Builds ausgeführt werden sollten.

Natürlich können wir den Ausschlussmechanismus des Surefire-Plugins verwenden und ihn einfach aus dem Build entfernen, aber im Idealfall würden wir etwas lieben, das es dem Entwickler ermöglichen würde, sie nach Belieben über Maven 2 auszuführen.

    
feoh 30.10.2008, 20:53
quelle

4 Antworten

11

Normalerweise würden Sie Ihrer Maven-Konfiguration ein Profil hinzufügen, das eine andere Reihe von Tests ausführt:

Führen Sie dies mit mvn -Pintegrationstest install

aus %Vor%     
krosenvold 30.10.2008, 21:00
quelle
4

Wenn Sie die Antwort von krosenvold hinzufügen möchten, um sicherzustellen, dass kein unerwartetes Verhalten vorliegt, müssen Sie auch ein Standardprofil verwenden, das die Integration oder die Stresstests automatisch ausschließt möchte in Ihrem speziellen Profil laufen.

%Vor%

Sie müssen ein Profil wie dieses erstellen, indem Sie einfach das surefire-plugin außerhalb eines Profils auflisten, wird das Profil überschrieben, sollte es ausgewählt werden mit:

%Vor%     
Joel Westberg 06.09.2011 19:54
quelle
1

Verwenden Sie ein Integrationstest-Plug-in wie den Super Hilfreiche Integrationstest Thingy , um Integrationstests zu trennen , systemisch) von Unit Test (Puristen sagen 30 Sekunden maximal für alle echten Unit Tests zu laufen). Machen Sie zwei Java-Pakete für Ihre Komponententests im Vergleich zu Integrationstests.

Binden Sie dieses Plugin dann nicht an eine Phase (den normalen Maven-Lebenszyklus) und führen Sie es nur dann aus, wenn es explizit als Ziel aufgerufen wird, etwa so: mvn shitty:clean shitty:install shitty:test

%Vor%

Auf diese Weise sind Ihre normalen Entwickler nicht betroffen, und Sie können Integrationstests nach Bedarf ausführen.

    
Matthew McCullough 14.02.2009 21:27
quelle
0

Eine weitere Option ist, dass der Stresstest erkennt, dass er in maven ausgeführt wird und nur ein- oder zweimal ausgeführt wird. d.h. sich in einen regulären Funktionstest verwandeln. Auf diese Weise können Sie überprüfen, ob der Code immer noch gut ist, aber nicht lange ausgeführt wird.

    
Peter Lawrey 15.02.2009 07:29
quelle