196

Maven の別のモジュールのテスト コードにどのように依存できますか?

例、2 つのモジュールがあります。

  • ベース
  • 主要

Base のベース テスト クラスを拡張する Main のテスト ケースが必要です。これは可能ですか?

更新:テスト jar の作成を含む、受け入れ可能な回答が見つかりました。

4

4 に答える 4

202

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>
于 2008-10-06T16:06:42.400 に答える
192

基本モジュールの提案をありがとう。ただし、この目的のためだけに新しいモジュールを作成したくはありません。

SurefireMavenのドキュメントブログで許容できる答えが見つかりました。「テストクラスを含むjarを作成する方法」も参照してください。

これにより、 jarプラグイン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> 
于 2008-10-06T15:06:38.747 に答える
14

テストコードを src/main/java として Maven プロジェクトを作成し、次の依存関係をプロジェクトに追加することで、これを解決しました。

    <dependency>
        <groupId>foo</groupId>
        <artifactId>test-base</artifactId>
        <version>1</version>
        <scope>test</scope>
    </dependency>
于 2008-10-06T14:44:45.747 に答える
-3

はい... Base モジュールを依存関係として Main に含めるだけです。テスト コードのみを継承する場合は、スコープ タグを使用して、デプロイ時に Maven がアーティファクトにコードを含めないようにすることができます。このようなものが動作するはずです:

<dependency>
    <groupId>BaseGroup</groupId>
    <artifactId>Base</artifactId>
    <version>0.1.0-SNAPSHOT</version>
    <scope>test</scope>
</dependency>
于 2008-10-06T14:43:18.043 に答える