Erste Option
Legen Sie Ihren gemeinsamen "Test"-Code in ein separates Modul (in src/main/java
) und deklarieren eine Abhängigkeit von diesem Modul mit einem test
Bereich in Modulen, die den gemeinsamen Code benötigen:
<dependency>
<groupId>my.group.id</groupId>
<artifactId>testing-framework</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
Das ist eine gängige Praxis, daran ist nichts auszusetzen.
Zweite Option
Verwenden Sie die Maven JAR-Plugin und seine jar:test-jar
Ziel ist es eine JAR-Datei mit den Testklassen für das aktuelle Projekt erstellen als Teil der package
Phase ( jar:test-jar
bindet sich standardmäßig an package
):
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Um das angehängte Test-JAR, das oben erstellt wurde, zu verwenden, wird empfohlen, eine Abhängigkeit vom Hauptartefakt mit einem bestimmten Typ von test-jar
:
<project>
...
<dependencies>
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
...
</project>
Siehe die Diskussion am Ende der Seite Leitfaden zur Verwendung beigefügter Tests aus welchen Gründen <type>test-jar</type>
sollte vorgezogen werden gegenüber <classifier>tests</classifier>
.