Java项目配置JUnit 5单元测试需添加junit-jupiter依赖并标记src/test/java为Test Sources Root,测试类名以Test结尾或方法加@Test注解,确保使用org.junit.jupiter.api.Test且类无参构造,Spring Boot项目通常已内置。

Java项目里配JUnit单元测试,不需要单独“安装”测试工具,核心是把JUnit依赖加进构建系统,并确保IDE识别测试目录结构。
用Maven添加JUnit 5依赖
Maven是主流选择,直接在pom.xml里声明依赖即可。注意JUnit 5分三个模块,日常写测试只加junit-jupiter就够了:
org.junit.jupiter junit-jupiter 5.10.2 test
-
scope=test表示该依赖只参与编译和运行测试,不打进最终jar包 - 别用
junit:junit:4.x——那是JUnit 4,API和生命周期注解(如@BeforeEach)完全不同 - 如果项目用了Spring Boot,通常已通过
spring-boot-starter-test间接引入了JUnit 5,不用重复加
IntelliJ IDEA中确认测试目录被识别为Test Sources
IDEA不会自动把src/test/java当测试根目录,需手动标记:
- 右键项目中的
src/test/java→ Mark Directory as → Test Sources Root - 若测试类里
@Test报红,大概率是这步没做,或Maven未刷新(点右侧Maven面板的Reload project) - 测试类名必须以
Test结尾,或方法上显式加@Test注解,否则IDEA默认不识别为可运行测试
运行单个测试方法时提示“No tests found”
常见于JUnit 5环境但用了JUnit 4的启动方式:
立即学习“Java免费学习笔记(深入)”;
- 检查类/方法上是否用了
org.junit.jupiter.api.Test,而不是org.junit.Test - 确保测试类没有
public static void main或构造函数参数——JUnit 5要求测试类有无参构造 - 如果用命令行运行:
mvn test -Dtest=MyServiceTest#testSaveValidInput,注意方法名大小写必须完全匹配 - Gradle用户要确认
testImplementation里引用的是org.junit.jupiter:junit-jupiter,且useJUnitPlatform()已在test块中启用
最易被忽略的是:JUnit 5的扩展机制(比如@ExtendWith(MockitoExtension.class))需要显式引入junit-jupiter-params或junit-jupiter-mockito等配套依赖,光靠基础junit-jupiter不行。










