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

Maven 集成测试不在配置文件下运行,maven,Maven,我的maven项目有以下目录结构: |-src |---itest |-----java |-------com |---------corp |-----------div |-------------dept |---------------prod |-----------------config |-------------------integration |---------------------Persistenc

我的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/i试验,非src/试验)

我有一套合适的
buildhelpermaven插件
plugin声明,告诉maven通过
addtestsource
addtestresource
目标添加
src/itest/java
src/itest/resources

当我从命令行运行
mvn测试时,一切都很好


问题:当我将我的插件声明移动到一个名为
integration
的独立
中时,当我执行
mvn test-Pintegration
时,我的测试拒绝运行,我不确定为什么…

惯例倾向于使用maven failsafe插件()通过配置将集成测试包括在任何地方,甚至与单元测试一起,然后将它们从单元测试阶段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>

maven故障保护插件
2.16
集成测试
验证
然后您可以删除指定的概要文件,如前所述,只有单元测试将在
测试
阶段执行,而集成测试将在
验证
阶段执行(包括在安装/部署之前)


遵循此约定将使您摆脱所有额外的插件配置,以移动文件并指向您的itest目录。

您可以共享您的
pom.xml
文件吗?@Mureinik您的回答是:我不知道您当前问题的原因,但有一个用于运行集成测试的Maven约定。运行
mvn测试应该编译并运行单元测试。这对开发人员来说应该很快。运行
mvn verify
(在
install
deploy
期间也会发生)是运行集成测试的正确方法。单元测试类名称以
test
结尾,集成测试有不同的结尾-通常
IT
@DavidV谢谢,我会研究一下。在过去,我通常会将所有集成测试集中到一个单独的模块中,只有在我想进行冒烟测试时才会运行该模块。但是,对于我的新项目,我希望将集成测试保留在它们应用的模块中,因此我希望将它们保留在模块内的单独文件夹中。@ThaDon,您应该不再需要集成配置文件了。(除非您希望区分不同的环境,例如开发与集成,但这是一个非常不同的概念)。