laufen maven Tests von Classpath
Frage
Um etwas von einem riesigen Chaos aufzuräumen, habe ich den Code meiner Tests löschen alle in einem gewöhnlichen Java-Projekt (alle in src / main / java), und dann erklärte, dass als <scope>test</scope>
Abhängigkeit in einem anderen Projekt, und die Tests erwartet auszuführen.
Schön sei es. todsicheres will nur die Tests ausführen, dass es in den Quellen zu sehen.
kann ich eine leider offensichtliche Lösung hier sehen Einbeziehung der Build-Helfer-Plugin und das Hinzufügen der Tests in den Test Kompilierungsumgebung als Quellverzeichnis, aber ich hatte gehofft, es zu vermeiden.
Falls sich jemand wundert, ist der Grund für all dies ist, dass die POM-Konfiguration für die Verwendung des Failsafe-Plugin einige Integrationstests so komplex, bekam zu laufen, dass ich wollte das Kompilieren aufzuspalten aus den Testklassen aus dem Lauf des Tests.
Lösung
Dies ist nun möglich, mit Maven todsicherem v2.15. Fügen Sie einfach die folgende Art von Konfiguration in dem todsicheren Plugin:
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<dependenciesToScan>
<dependency>com.group.id:my-artifact</dependency>
<dependency>com.group.id:my-other-artifact</dependency>
</dependenciesToScan>
...
</configuration>
...
</plugin>
...
</build>
Sie sollten auch die tatsächlichen Abhängigkeiten in den Abhängigkeiten Abschnitt deklarieren:
<dependencies>
<dependency>
<groupId>com.group.id</groupId>
<artifactId>my-artifact</artifactId>
<type>test-jar</type>
<version>1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.group.id</groupId>
<artifactId>my-other-artifact</artifactId>
<type>test-jar</type>
<version>1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
Andere Tipps
Schön sei es. todsicheres will nur die Tests ausführen, dass es in den Quellen zu sehen.
Dies ist derzeit nicht möglich, aus der Box, todsicheren sieht nur bei Klassen in target/test-classes
:
- Re: todsichere nicht richtig erfasst Tests von Test-jar
- Re: maven-todsichere-Plugin: run Unit-Tests von Klassen in einem Glas, kein Verzeichnis
Dies ist tatsächlich angemeldet als SURE-569 - Es sollte ein Weg sein, Unit-Tests laufen aus eine Abhängigkeit jar .
kann ich eine leider offensichtliche Lösung hier sehen Einbeziehung der Build-Helfer-Plugin und das Hinzufügen der Tests in den Test Kompilierungsumgebung als Quellverzeichnis, aber ich hatte gehofft, es zu vermeiden.
Die aktuelle Problemumgehung ist dependency:unpack
zu verwenden, um das Glas in target/test-classes
vor der test
Phase zu entpacken.
Sie können nicht tun, es umgekehrt?
Ich meine den Code setzt der src / test / java, abhängig von Ihrem Hauptmodul und die Tests im Testmodul laufen?