
Maven 默认将单元测试和集成测试分离执行:单元测试在 test 阶段运行,而集成测试需在 verify 阶段(而非 test 阶段)触发,因此直接使用 mvn test -Dtest=XXITCase 无法执行集成测试。
maven 默认将单元测试和集成测试分离执行:单元测试在 `test` 阶段运行,而集成测试需在 `verify` 阶段(而非 `test` 阶段)触发,因此直接使用 `mvn test -dtest=xxitcase` 无法执行集成测试。
在 Maven 的标准生命周期中,test 阶段仅负责执行 src/test/java 下的单元测试(如 AA.java),而集成测试(通常命名规范为 *IT.java 或 *ITCase.java,如 AAITCase.java)默认被设计为在更靠后的 verify 阶段执行——这是 Maven 推荐的实践,旨在确保集成测试在完整的构建产物(如打包后的 WAR/JAR)就绪后才运行,从而模拟真实部署环境。
✅ 正确执行单个集成测试的命令如下:
mvn verify -Dtest=AAITCase
⚠️ 注意事项:
- 该命令仍依赖插件配置。若项目未显式配置
maven-failsafe-plugin,verify阶段将不会识别或执行*IT*.java类。请确保pom.xml中已声明该插件(推荐 3.0.0+ 版本),例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.0.0-M10</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>-
maven-failsafe-plugin默认只扫描匹配**/IT*.java、**/*IT.java和**/*ITCase.java的类,因此类名需符合约定(如AAITCase.java是有效的,但AAIT.java同样被支持)。 - 若希望跳过单元测试仅运行集成测试,可添加
-Dmaven.test.skip=true(不推荐)或更安全地使用-DskipTests+ 显式启用 failsafe(推荐方式仍是通过verify阶段控制)。
? 总结:不要用 mvn test 运行 ITCase;务必使用 mvn verify 并确保 maven-failsafe-plugin 已正确配置——这是 Maven 多阶段验证体系的设计核心,也是保障集成测试可靠性的关键前提。


















