6 Stimmen

Multiple Test Sets in Maven

Ich habe einen REST-Server (in Java mit RestEasy) geschrieben, der mit einem in Scala geschriebenen Unit-Test-Suite verbunden ist. Der Test-Suite verwendet den Mock-Server von RestEasy und wird bei jedem Maven-Build ausgeführt.

Ich möchte gerne eine zweite Funktionstest-Suite erstellen, die einen tatsächlichen Tomcat-Server aufruft und jeden REST-Service ausführt. Ich möchte, dass diese neue Suite nicht bei jedem Build ausgeführt wird, sondern nur auf Anfrage, vielleicht gesteuert mit einem Befehlszeilenargument für Maven.

Ist es möglich, mehrere unabhängige Test-Suiten in einem Maven-Projekt zu erstellen und einige davon von der automatischen Ausführung zu deaktivieren, oder muss ich ein separates Maven-Projekt für diese Funktionssuite erstellen? Wie kann ich den Code der verschiedenen Funktionssuiten trennen, wenn diese Tests im selben Projekt wie die Unit-Tests (in verschiedenen Verzeichnissen) sind? Wie kann ich eine ausgewählte Suite mit Befehlszeilenargumenten ausführen?

5voto

FrVaBe Punkte 46058

Ich habe es selbst nie verwendet, aber ich kenne die Maven-Integrationstests, die vom Maven Failsafe-Plugin ausgeführt werden.

Da das Surefire-Plugin standardmäßig die Tests mit den Namen **/Test*.java, **/*Test.java, **/*TestCase.java enthält, führt das Failsafe-Plugin die Tests **/IT*.java, **/*IT.java, **/*ITCase.java aus.

Beide Testansätze haben unterschiedliche Absichten, die anscheinend teilweise Ihren Anforderungen entsprechen. Es könnte sich lohnen, einen Blick darauf zu werfen.....


Ein anderer Ansatz wäre die Verwendung von Maven-Profilen und das Definieren von verschiedenen Surefire-Includes für jedes Profil.

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