Maven Surefire插件单元测试指南 | AI生成和翻译

Home 2025.09

Maven Surefire Plugin 是在 Maven 构建生命周期的 test 阶段运行单元测试的插件。由于几乎所有项目都需要将自动化测试集成到构建过程中,它成为了最常用的 Maven 插件之一。


插件简介


工作原理

  1. 当执行 mvn testmvn package 命令时,Maven 会调用 Surefire 插件
  2. 插件会扫描 src/test/java 目录中的测试类
  3. 默认匹配以下命名模式的测试文件:

    • *Test.java
    • Test*.java
    • *Tests.java
    • *TestCase.java
  4. 在独立的类加载器中执行测试用例
  5. 将测试结果输出到 target/surefire-reports 目录(支持纯文本、XML 格式,通过报告插件还可生成 HTML)

基础用法

pom.xml 中进行配置:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>3.2.5</version> <!-- 建议使用最新稳定版 -->
    </plugin>
  </plugins>
</build>

配置完成后执行:

mvn test

常用配置

<configuration>
  <includes>
    <include>**/*MyTest.java</include>
  </includes>
  <excludes>
    <exclude>**/IntegrationTest.java</exclude>
  </excludes>
</configuration>
<configuration>
  <systemPropertyVariables>
    <env>dev</env>
  </systemPropertyVariables>
</configuration>
<configuration>
  <forkCount>2</forkCount>
  <reuseForks>true</reuseForks>
  <parallel>classes</parallel>
</configuration>

此配置可在多个 JVM 进程或线程中并行运行测试。


适用场景


总结maven-surefire-plugin 是 Maven 项目中执行单元测试的核心插件。通过在 pom.xml 中配置,使用 mvn test 命令运行测试,并在 target/surefire-reports 目录中查看测试报告。


需要我进一步解释 Surefire 和 Failsafe 插件的区别吗?(这两个插件经常被混淆)


Back Donate