You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

maven-surefire-plugin 2.22.1无法执行全部测试的解决方案求助

解决Maven Surefire 2.22+版本仅运行部分测试的问题

从你描述的情况来看,核心问题是Surefire插件从2.20升级到2.22.1后,默认的测试类扫描规则或执行逻辑发生了变化,导致部分测试(比如单元、集成测试)未被纳入执行范围。以下是针对性的排查和解决步骤:

1. 确认测试类命名是否符合默认规则

Surefire 2.22.0及以后版本,默认只扫描并执行符合以下命名模式的测试类:

  • **/Test*.java
  • **/*Test.java
  • **/*Tests.java
  • **/*TestCase.java

如果你的单元测试、集成测试类命名不在这个范围内(比如叫*IntegrationTest.java、*ServiceTest.java这种后缀不是Test/Tests/TestCase的),就会被默认跳过。

2. 显式配置Surefire的测试类匹配规则

如果测试类命名无法统一成默认模式,直接在插件配置里添加所有需要执行的测试类匹配规则:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.1</version>
            <configuration>
                <includes>
                    <!-- 保留默认规则 -->
                    <include>**/Test*.java</include>
                    <include>**/*Test.java</include>
                    <include>**/*Tests.java</include>
                    <include>**/*TestCase.java</include>
                    <!-- 添加你的其他测试类模式,比如集成测试、单元测试 -->
                    <include>**/*IntegrationTest.java</include>
                    <include>**/*UnitTest.java</include>
                    <!-- 如果有其他自定义命名的测试类,也加在这里 -->
                </includes>
            </configuration>
        </plugin>
    </plugins>
</build>

3. 检查是否使用了测试分类注解

如果你的测试用@Category注解做了分类(比如标记了UnitTest、IntegrationTest等),Surefire默认不会执行所有分类,需要显式指定要运行的分组:

<configuration>
    <!-- 替换成你实际的分类类路径 -->
    <groups>com.example.tests.Unit,com.example.tests.Integration,com.example.tests.Smoke,com.example.tests.Mock</groups>
</configuration>

4. 查看Surefire执行日志定位问题

如果上面的方法都没解决,运行以下命令查看详细日志:

mvn test -X

在日志里找Included tests:和Excluded tests:的部分,就能明确看到哪些测试类被选中、哪些被排除,进而精准调整配置。

5. 排除其他干扰因素

  • 检查pom.xml里有没有全局的skipTests或maven.test.skip配置设为true;
  • 确认命令行执行mvn test时没有加-DskipTests或-Dmaven.test.skip=true参数;
  • 检查测试类是否存在编译错误,编译失败的类不会被执行。

内容的提问来源于stack exchange,提问作者Alen Siilivask

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:55:29