集成测试不在配置文件下运行

时间:2014-05-21 16:48:46

标签: maven

我的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/javasrc/itest/resources目标添加add-test-sourceadd-test-resource

当我从命令行运行mvn test时,一切正常。

问题:当我将插件声明移到单独的<profile>名为integration时,我的测试拒绝在我执行mvn test -Pintegration时执行{I} ;我不确定为什么......

1 个答案:

答案 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目录。