메이븐 프로파일을 사용하여 여러 종류의 테스트 (단위, 통합, 승인)를 분리하려고합니다.메이븐 프로파일은 하위 모듈에서 상속되지 않습니다.
<properties>
<build.profile.id>dev</build.profile.id>
<skip.unit.tests>false</skip.unit.tests>
<skip.integration.tests>true</skip.integration.tests>
<skip.acceptance.tests>true</skip.acceptance.tests>
</properties>
<profiles>
<profile>
<id>dev</id>
</profile>
<profile>
<id>integration-test</id>
<properties>
<build.profile.id>integration-test</build.profile.id>
<skip.unit.tests>true</skip.unit.tests>
<skip.integration.tests>false</skip.integration.tests>
<skip.acceptance.tests>true</skip.acceptance.tests>
</properties>
</profile>
<profile>
<id>acceptance-test</id>
<properties>
<build.profile.id>acceptance-test</build.profile.id>
<skip.unit.tests>true</skip.unit.tests>
<skip.integration.tests>true</skip.integration.tests>
<skip.acceptance.tests>false</skip.acceptance.tests>
</properties>
</profile>
</profiles>
<build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<skipTests>${skip.unit.tests}</skipTests>
<includes>
<include>**/*UnitTests.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.17</version>
<executions>
<execution>
<id>integration-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skip.integration.tests}</skipTests>
<includes>
<include>**/*IntegrationTests.java</include>
</includes>
</configuration>
</execution>
<execution>
<id>acceptance-tests</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<skipTests>${skip.acceptance.tests}</skipTests>
<includes>
<include>**/*AcceptanceTests.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
당신은 내가 사용하는 프로파일에 따라 검사의 특정 유형을 실행하려면 프로필 정보를 사용하고 볼 수 있듯이이 메인 치어 파일의 일부이다. 기본 프로필은 dev이며 단위 테스트 만 실행합니다. 그들은 다음과 같이 실행할 수 있습니다 : 나는 안전 장치 플러그인을 사용
통합과 수용 테스트를 위해mvn clean test
: integartion 테스트를 실행의 예는 다음과 같습니다이 잘 작동
mvn clean verify -P integration-test
내가 메인 치어에서 실행하는 경우 모듈이지만 자식 모듈에서 실행할 때 작동하지 않습니다. 테스트는 무시됩니다. 하위 모듈에 대한 효과적인 POM을 보면 프로필이 표시되지 않습니다. 제가 잘못한 일을하고 있습니까? 아니면 이것이 maven으로부터 기대되는 행동입니까? 프로필 상속 (계층 구조에서 가장 깊은 모듈로 계단식으로 연결해야하는 경우)을 수행 할 수 없다면이 방법을 사용할 수 없습니까?
업데이트 : 이것은 당신이 일반적으로 직접 모듈을 실행하지 않는 멀티 모듈 프로젝트와 프로젝트 계층 구조 프로젝트 디렉토리
--main module
--commons module
--administration
----domain
----data
----business
----web
POM 계층 구조 란 무엇입니까? 이것을 기반으로 - http://stackoverflow.com/questions/3695394/inheriting-maven-profiles - 작동해야합니다. –
제 말은 ... 귀하의 모듈은 부모로서 다중 모듈 POM을 가지고있는 것입니다, 그렇습니까? –
질문을 업데이트했습니다. 네 그들이 갖고 있어요. –