Mavenの別のモジュールのテストコードに依存するにはどうすればよいですか?
たとえば、2つのモジュールがあります。
MainのテストケースでBaseのベーステストクラスを拡張したいと思います。これは可能ですか?
更新:テストjarの作成を伴う 許容可能な回答 が見つかりました。
classifierではなくtype を使用することをお勧めします( classifier も参照)。それはMavenにあなたがやっていることをもう少し明示的に伝えます(そしてm2Eclipseとq4eの両方がそれを好むことがわかりました)。
<dependency>
<groupId>com.myco.app</groupId>
<artifactId>foo</artifactId>
<version>1.0-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
基本モジュールの提案をありがとう。ただし、この目的のためだけに新しいモジュールを作成することは避けたいです。
Surefire Maven documentation および a blog で受け入れ可能な答えを見つけました。 「 テストクラスを含むjarの作成方法 」も参照してください。
これにより、テストのあるモジュールがコードを共有できるように、 jar plugin を使用してsrc/test/Java
からコードのjarファイルが作成されます。
<project>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
上記で作成された添付テスト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>
これを解決するには、src/main/Javaとしてテストコードを使用してmavenプロジェクトを作成し、プロジェクトに次の依存関係を追加します。
<dependency>
<groupId>foo</groupId>
<artifactId>test-base</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>