1 回答
TA贡献1831条经验 获得超4个赞
您报告的行为表明您的测试是在test
阶段而不是integration-test
阶段中运行的。这是因为默认情况下 Maven Surefire 和 Maven Failsafe 插件都使用类名约定来区分这两种类型的测试,如下所述:
默认单元测试行为
Maven Surefire 插件在该阶段运行单元test
测试。默认情况下,它根据测试的类名选择要执行的测试,如Maven Surefire Plugin |中所述。测试的包含和排除:
“**/Test*.java” - 包括其所有子目录以及以“Test”开头的所有 Java 文件名。
“**/*Test.java” - 包括其所有子目录以及所有以“Test”结尾的 Java 文件名。
“**/*Tests.java” - 包括其所有子目录以及所有以“Tests”结尾的 Java 文件名。
“**/*TestCase.java” - 包括其所有子目录以及以“TestCase”结尾的所有 Java 文件名。
默认集成测试行为
Maven Failsafe 插件在该阶段运行集成测试integration-test
。默认情况下,它还会根据测试的类名选择要执行的测试,如[Maven Failsafe Plugin | Maven Failsafe Plugin]中所述。测试的包含和排除]( https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html:
“**/IT*.java” - 包括其所有子目录以及所有以“IT”开头的 Java 文件名。
“**/*IT.java” - 包括其所有子目录以及所有以“IT”结尾的 Java 文件名。
“**/*ITCase.java” - 包括其所有子目录以及所有以“ITCase”结尾的 Java 文件名。
因此,您可能只需要重命名集成测试类以符合上面显示的三个约定之一。
添加回答
举报