我的maven项目有以下目录结构:
|-src
|---itest
|-----java
|-------com
|---------corp
|-----------div
|-------------dept
|---------------prod
|-----------------config
|-------------------integration
|---------------------PersistenceConfig.java
|-----------------test
|-------------------LandingPageInfoTest.java
|-----resources
|-------db
|---------migration
|-----------V1__SeedLandingPageInfo.sql
|-------log4j.properties
|-------persistence.properties
(注意:src / 我测试,而不是src / test)
我有一套适当的build-helper-maven-plugin
插件声明,告诉maven通过src/itest/java
和src/itest/resources
目标添加add-test-source
和add-test-resource
。
当我从命令行运行mvn test
时,一切正常。
问题:当我将插件声明移到单独的<profile>
名为integration
时,我的测试拒绝在我执行mvn test -Pintegration
时执行{I} ;我不确定为什么......
答案 0 :(得分:0)
惯例倾向于使用带有配置的maven-failsafe-plugin(http://maven.apache.org/surefire/maven-failsafe-plugin/)来包括您的集成测试,甚至是您的单元测试,然后它们应该被排除在单元测试阶段之外surefire插件。举个简单的例子:
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.16</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<!-- Include your integration test files/directories/suites here -->
</includes>
</configuration>
</plugin>
然后你可以删除你指定的配置文件,如上所述,只有单元测试将在test
阶段执行,集成测试将在verify
阶段执行(之前包含)安装/部署)。
遵循此约定将让您摆脱所有额外的插件配置,以移动文件并指向您的itest目录。