搭建你的 JUnit 5 测试战场

说实话,配置环境这事儿看着简单,但翻车的人真不少。我记得刚带团队时,有个同事配了一天都没跑起来——最后发现是依赖里混了 Junit 4 的老包。所以咱们这一章,就把 Maven、Gradle 和 IDE 集成一次讲透。

选用 Maven 还是 Gradle?

我个人习惯用 Maven,但如果你在用 Gradle,也别慌。两者的核心思路一样:把 JUnit 5 的 junit-jupiter 依赖加进去就行。这个依赖会自动把引擎、API 和参数化测试的支持都带进来。

Maven 配置:pom.xml

先看 Maven。在 pom.xml 里加上这段:

<dependencies>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>5.10.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.1.2</version>
        </plugin>
    </plugins>
</build>
小提示:版本号最好去 Maven Central 查最新稳定版。我用 5.10.0 是因为它长期支持,坑少。maven-surefire-plugin 要配 3.x,不然跑不了 JUnit 5 的测试。

Gradle 配置:build.gradle

如果用 Gradle,配置更简洁:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter:5.10.0'
}

tasks.named('test') {
    useJUnitPlatform()
}

嗯,这里要注意:必须加上 useJUnitPlatform(),否则 Gradle 不会识别 JUnit 5 的测试类。我在项目里见过有人漏了这个,一个测试都跑不了,还以为是 IDE 坏了。

IDE 集成:两步搞定

不管用 IntelliJ IDEA 还是 Eclipse,现代 IDE 都内置了 JUnit 5 支持。你只需要:

  1. 导入项目:如果是 Maven 项目,直接 Open 或 Import;Gradle 项目选 Gradle 方式导入。IDE 会自动下载依赖。
  2. 检查运行配置:创建一个测试类,右键选择 Run,默认就能用 JUnit 5 跑。
避坑指南:我曾经在 Eclipse 里遇到“找不到 JUnit 5 测试”的情况——后来发现是老项目里混了 Spring Boot 自动配置的 junit-vintage-engine。解决方法是在 dependency 里显式排除老版本,或者在运行配置里强制用 junit-jupiter-engine。

验证环境:写个 Hello Test

配置完别急,先写个极简测试确认一切正常:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class SimpleTest {
    @Test
    void shouldPass() {
        assertEquals(2, 1 + 1);
    }
}

运行后如果看到绿条,说明环境搭好了。为什么我强调这个?之前有个同事跳过验证直接写复杂测试,结果跑不出来,排查半天才发现是依赖版本不匹配。

本章知识体系

下面这张图帮你理清整个搭建流程:

JUnit 5 环境搭建核心流程 选择构建工具 Maven:pom.xml Gradle:build.gradle 添加 junit-jupiter 依赖 IDE 集成 / 导入项目 编写 @Test 并运行 关键:依赖版本一致 + IDE 自动识别 + useJUnitPlatform()(Gradle 必备)
总结一下要点:
- Maven 用 junit-jupiter 依赖 + maven-surefire-plugin 3.x
- Gradle 加 testImplementation + useJUnitPlatform()
- IDE 直接导入项目即可,无需额外插件
- 验证用最简单的 assertEquals 跑一次绿条

环境搭好了,下一步咱们就能放心玩参数化测试了。记住一句话:基础打牢,踩坑才少。你按这个流程来,半小时内肯定跑起来。