【问题标题】:SpringBoot Test doesn't load TomcatSpringBoot 测试不加载 Tomcat
【发布时间】:2021-12-10 09:19:11
【问题描述】:

我正在尝试测试我的 SpringBoot 应用程序。当我像往常一样启动它时,它会按预期启动 Tomcat 服务并在 Spring 徽标之后将其记录到控制台中。

但是,当我执行 @SpringBootTest Classes 时,它似乎没有启动 Tomcat 服务,因为在测试中无法访问 URL,并且在 Spring 徽标之后,有关 Tomcat 服务的所有日志都丢失了。

Stackoverflow 上的一个回答说:

使用@SpringBootTest 运行测试会默认启动嵌入式服务器。默认运行在 MOCK 环境中。

链接:https://stackoverflow.com/a/56077027/16034630

这就是我的理解。但是为什么我的测试在包含 Tomcat 服务的情况下无法正常启动应用程序?

【问题讨论】:

  • 请展示您的测试和配置。

标签: spring spring-boot testing tomcat spring-test


【解决方案1】:

我通过这样做找到了解决方案:

将测试全部放在应用程序类的层次结构中。我的 Springboot 主方法位于路径 src/main/java/"myProject"/"myProjectClassWithMainMethod" 中的类中,我将所有测试类放在路径 src/test/java/"myProject "/test/"TestClasses"。

最后也是最重要的,用@SpringBootTest 注释每个Testclass 并指定它应该通过添加(webEnvironment = WebEnvironment.DEFINED_PORT) 以定义的端口开始。 所以每个类都有注解@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2019-08-25
  • 2017-01-07
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2017-10-07
  • 2016-12-11
相关资源
最近更新 更多