[maven-2] Maven에서 테스트 코드 공유

Maven의 다른 모듈의 테스트 코드에 어떻게 의존 할 수 있습니까?

예를 들어 2 개의 모듈이 있습니다.

  • 베이스
  • 본관

Main의 테스트 사례를 Base의 기본 테스트 클래스로 확장하고 싶습니다. 이게 가능해?

업데이트 : 테스트 항아리 만들기와 관련된 적절한 대답을 찾았습니다 .



답변

내가 사용하는 것이 좋습니다 대신 분류의 유형 (참조 : 분류를 ). 그것은 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 설명서블로그 에서 적절한 답변을 찾았습니다 . ” 테스트 클래스를 포함하는 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> 


답변

테스트 코드를 src / main / java로 maven 프로젝트를 만들고 프로젝트에 다음과 같은 종속성을 추가하여이를 해결했습니다.

    <dependency>
        <groupId>foo</groupId>
        <artifactId>test-base</artifactId>
        <version>1</version>
        <scope>test</scope>
    </dependency>


답변

그렇습니다 … 기본 모듈을 Main의 종속성으로 포함하십시오. 테스트 코드 만 상속하는 경우 scope 태그를 사용하여 Maven이 배포 할 때 이슈에 코드를 포함시키지 않도록 할 수 있습니다. 이와 같은 것이 작동해야합니다.

<dependency>
    <groupId>BaseGroup</groupId>
    <artifactId>Base</artifactId>
    <version>0.1.0-SNAPSHOT</version>
    <scope>test</scope>
</dependency>


답변