2010-06-27 4 views
5

Ich habe zwei Integrationstests in einem Maven-Projekt - automatische und manuelle Tests. Die manuellen Tests sind wenige, aber langwierig - sie erfordern das Ziehen der Stecker von Servern usw. Ich möchte ein separates Ziel für die manuellen Tests erstellen, also kann ich etwas wie mvn manualtests ausführen, um die manuellen Tests auszuführen. Wenn Sie einfach einen normalen Maven Build mvn install oder so ausführen, sollten die automatischen Tests ausgeführt werden.Maven - Hinzufügen einer benutzerdefinierten Phase zum Ausführen eines Plugins mit einer anderen Konfiguration

Ich habe die manuellen Tests bereits mit der TestNG-Anmerkung @Test(groups="manual" kommentiert. Das Ziel ist nun, zwei Konfigurationen des todsicheren Plugins zu haben: eines mit den automatischen Tests, das an die Testphase des Builds gebunden ist, und eines mit den manuellen Tests, das an eine andere benutzerdefinierte Phase gebunden ist, die ich aufrufen möchte: manualtests. Es scheint, als ob es nicht möglich ist, eine Ausführung eines Plugins an eine nicht existierende Phase zu binden (d. H. Eine, die nicht durch maven vordefiniert ist). Ist es nicht möglich, eigene Phasen zu definieren?

Antwort

1

Das sollte möglich sein, wenn auch nicht einfach. Erster Schritt: Schauen Sie sich an, wie es standardmäßig gemacht wird.

Verwendung dieser Abhängigkeit:

<dependency> 
    <groupId>org.apache.maven</groupId> 
    <artifactId>maven-core</artifactId> 
    <version>${maven.version}</version> 
</dependency> 

die Quellen erhalten und einen Blick auf die components.xml innerhalb META-INF/Plexus haben. Dort sind sowohl die Standardphasen als auch die Standardlebenszyklus-/Phasenbindungen definiert.

erstellen ein Plugin, das diese Standard Phasen (in einem eigenen components.xml) überschreibt und define it as an extension

+0

nicht einfach überhaupt ... vielleicht ein könnte ein Plugin erstellen, das dynamisch die Lebenszyklen basierend auf der Plugin-Konfiguration hinzufügt. Ich werde es mir ansehen. –

Verwandte Themen