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

Tomcat运行Spring Web应用报org.junit.Test类找不到问题如何修复

错误根因

从报错栈可以看出,该问题是Spring JPA持久化单元管理器扫描应用类时,加载到了标注了org.junit.Test注解的类,而JUnit依赖默认的作用域为测试范围(test scope),正式环境打包时不会被打入WAR包,因此触发类找不到异常。该异常为WARN级别所以不会导致应用崩溃,只是会反复打印占用日志空间。

修复方案
  • 优先检查打包配置
    确认你的Maven/Gradle打包规则是否错误将src/test目录下的测试类打入了生产WAR包的WEB-INF/classes路径下,修正打包配置排除测试类即可解决90%以上的此类问题。
  • 调整类扫描范围
    如果你是手动配置了JPA的实体扫描@EntityScan或者Spring组件扫描@ComponentScan,可以新增过滤规则,排除标注了测试注解或者属于测试包路径的类,避免Spring扫描到测试类。
  • 清理业务代码的测试注解
    排查业务代码目录(src/main/java)下的类是否误加了@Test等JUnit相关注解,删除非测试类上的测试注解即可。
  • 临时日志屏蔽(治标不治本,仅作应急用)
    如果你暂时找不到触发问题的类,可以修改日志框架配置,将org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor类的日志级别调整为ERROR,即可屏蔽该WARN日志。
  • (不推荐)修改JUnit依赖范围
    如果你确认生产环境需要依赖JUnit相关类,可以将pom.xml/gradle配置中JUnit依赖的scope从test改为compile,打包时会将JUnit的jar包打入应用,也可以消除报错。

内容的提问来源于stack exchange,提问作者J.E.Y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:57:04