2 Stimmen

Maven Multi-Modul-Builds beachten das failsafe-maven-plugin nicht?

Vor kurzem habe ich entdeckt, dass Hudson nicht das Problem war. In Wirklichkeit war es Maven selbst, da der Multimodul-Build den Build-Fehler verursachte, nicht Hudson. Ich hatte nur nicht bemerkt, wo das Problem tatsächlich existierte.

Ich lasse die ursprüngliche Frage hier stehen.


Ich benutze die failsafe-maven-plugin um einige Integrationstests durchzuführen. Der Unterschied zwischen Failsafe und Surefire besteht darin, dass Failsafe Fehler zulässt und den Build nicht fehlschlagen lässt.

Bei meinen nächtlichen Builds kann es vorkommen, dass ein Dienst, den die Integrationstests verwenden, ausfällt. Bei normalen Builds würde das Failsafe-Plugin den Build weiterlaufen lassen, da die Integrationstests fehlschlagen dürfen. Hudson scheint dies jedoch nicht zu respektieren und stoppt den Build und produziert Regen.

Ich habe versucht Schalten Sie die Failsafe-Tests aus bei nächtlichen Builds mit -DskipITs. Dies scheint zu scheitern, da ich in einem Multi-Modul-Build bin.

Irgendwelche Ideen, wie man Maven dazu bringt, zu respektieren, dass diese Tests fehlschlagen können, obwohl sie Teil eines bestimmten Moduls sind?

Das Projekt ist wie folgt aufgebaut:

-parent
\-jar
\-jar (where integration tests run)
\-war
\-ear

0 Stimmen

Befinden sich diese Integrationstests in einem bestimmten Verzeichnis oder in einem speziellen Modul (das habe ich nicht verstanden)? Wenn nicht, warum nicht? Können Sie uns etwas mehr über die Multimodulstruktur erzählen? Welches Ziel verfolgen Sie bei nächtlichen Builds, die verify Ziel?

0 Stimmen

Ich führe die Installation auf einer nächtlichen Basis auf der obersten Ebene des übergeordneten pom aus.

0voto

lexicore Punkte 40914

Sie können Profile verwenden, um Builds für verschiedene Umgebungen (Nightly Builds, Releases, normale Entwickler-Builds usw.) etwas anders zu gestalten.

Ich würde auch versuchen, die Maven-Version zu aktualisieren, da es kürzlich einige Korrekturen im Zusammenhang mit Multi-Modul-Builds gab.

0voto

Kief Punkte 4184

Ich glaube nicht, dass Ihre ursprüngliche Annahme, dass failsafe-maven den Build nicht fehlschlagen lässt, korrekt ist. Ein fehlgeschlagener Test stoppt nicht die Integrationstest Phase vor dem Abschluss, was sich von dem Surefire-Plugin unterscheidet, das Unit-Tests durchführt. Dies ermöglicht die post-integration-test Phase auszuführen, damit die Testumgebung abgebaut werden kann (Abschaltung des Anwendungsservers usw.).

Danach wird die Überprüfen Sie Phase, in der die Ergebnisse der Integrationstests geprüft werden. wenn einer dieser Tests fehlgeschlagen ist, では Maven meldet einen Build-Fehler zurück, den Hudson zu Recht aufgreift, so dass Ihr Build als fehlerhaft gekennzeichnet werden kann.

0voto

Jared Punkte 1859

Verwenden Sie eine Maven-Profil zum Ein/Ausschalten der Ziel überprüfen des Maven Failsafe-Plugins.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X