Maven 集成测试不在配置文件下运行
我的maven项目有以下目录结构:Maven 集成测试不在配置文件下运行,maven,Maven,我的maven项目有以下目录结构: |-src |---itest |-----java |-------com |---------corp |-----------div |-------------dept |---------------prod |-----------------config |-------------------integration |---------------------Persistenc
|-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,您应该不再需要集成配置文件了。(除非您希望区分不同的环境,例如开发与集成,但这是一个非常不同的概念)。