Spring项目使用JUnit的@Test注解测试时需要编写main()方法吗
报错根因
该报错是IDE将JUnit测试类识别为普通Java应用启动导致的:普通Java程序需要自定义public static void main(String[] args)作为入口,而JUnit测试类的运行入口由JUnit框架提供,不需要手动编写main方法。
可落地解决方案
- 调整运行触发方式:不要直接点击类层级的运行按钮,找到
test()方法左侧的运行图标,点击后选择「运行 'test()'」,IDE会自动识别为JUnit用例执行。 - 手动修改运行配置:如果上述操作还是触发报错,打开当前类的运行配置页,将运行类型从「Application」修改为「JUnit」,确认测试类指向
com.test.app.SpringTest、测试方法指向test后保存运行即可。 - 调整测试类存放路径:按照Maven项目规范,JUnit测试类需要存放在
src/test/java目录下的对应包中,你当前如果把SpringTest类放在src/main/java下,也可能触发IDE识别异常,将类迁移到test目录下的对应包即可。 - 核对依赖版本:确认你导入的
spring-test依赖版本和项目整体Spring版本一致,同时确保JUnit 4的依赖已正确导入,参考依赖配置如下:
<!-- JUnit4 依赖 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <!-- Spring测试依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>替换为你项目实际使用的Spring版本号</version> <scope>test</scope> </dependency>
内容的提问来源于stack exchange,提问作者CsJuniorInNuist
相关产品推荐
相关产品推荐

