# [Maven]wie bekommt man separat ausführbare (executable jar) tests



## dermoritz (26. Mrz 2012)

ich hab in meinem MultiModul-Projekt die Integrations- und Seleniumtests in ein extra Modul gepackt. Per Profil kann ich wählen was laufen soll (-PseleniumTests, -PintegrationsTests).

Insbesondere die Seleniumtests müsste ich aber zusätlich separat ausführen. Gibt es eine Möglichkeit tests als ausführbare jar-Datei zu bauen?
Im Moment sind die Tests mit dem Hauptmodul über eine parent-pom verbunden. Wegen der gemeinsamen config kann ich die Tests nur über das parent-Modul starten.
Ich bräuchte was analoges zu "jar-with-dependencies" für Tests.

pure Spekulationen:
Dazu müsste ja der Testrahmen (maven-surefire oder eine Alternative) in die jar-Datei gepackt werden?!
Gibt es sowas?


----------



## kama (26. Mrz 2012)

Hallo,

nutzt Du schon mvn -pl ... ?

Gruß
Karl Heinz Marbaise


----------



## dermoritz (27. Mrz 2012)

ne das benutze ich noch nicht. Du meinst also auf dem parent: mvn -pl testModul ?
Das wäre ein großer Schritt in die richtige Richtung - Danke.
In der externen Umgebung müssten aber maven, die corporate pom und das Hauptmodul "installiert" sein oder? Kann man das eventuell per Profil (ein Profil in dem das Testmodul kein parent hat) reduzieren?
Wie gesagt das Optimum wäre eine jar-Datei die alles enthält (inkl maven und alle benötigten plugins) und einfach läuft .

(wie ich gesehen hab hast du auch selenium - How to externalize TestNG/Junit tests (run them sparatly) from a Maven project? - Stack Overflow entdeckt. die endgültige Antwort könntest dann dorthin übertragen und ich sie "akzeptieren"  )


----------



## kama (27. Mrz 2012)

Hallo,

was mir noch nicht genau klar ist, was Du mit "externen Umgebung"... meinst...Machst Du integrationstest in einer anderen Umgebung ?

Gruß
Karl Heinz Marbaise


----------



## dermoritz (27. Mrz 2012)

Zunächst laufen alle tests bei "uns" (in Jenkins bei jedem commit). Es ist aber geplant zumindest die Seleniumtests (könnten ggf. in ein separates Modul ausgelagert werden) auch beim Kunden laufen zu lassen. Ich möchte den Konfigurationsaufwand insgesamt minimal halten. Eine Mavenumgebung mit bestimmten Artefakten könnte man beim Kunden eventuell voraussetzen (hat auch nen SW_Process mit Maven am laufen) - mit "-pl" hat man diesen Stand glaube schon erreicht?!
Aber wie gesagt wenn man das reduzieren könnte wär das schön:
- kann ich alle benötigten Artefakte mit den Tests zusammenpacken so dass
"mvn -PspeziellesProfil verify" auf dem Testmodul läuft ohne "installierte" Artefakte (Artefakte würde man in einem speziellen Ordner der Auslieferung hinzufügen)?
- optimal wäre wie gesagt java -jar Testmodul.jar - und alles was gebarucht wird ist in er jar


----------

