Spring Boot 测试未加载 Tomcat

SpringBoot Test doesn't load Tomcat

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

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

Whosebug 上的一个回答说:

Running a test with @SpringBootTest does start an embedded server by default. By default, it runs in the MOCK environment.

Link:

我是这样理解的。但是为什么我的测试不能正常启动包含 Tomcat 服务的应用程序?

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

将所有测试放在应用程序 Class 具有的层次结构中。我的 Springboot Main Method 在路径 src/main/java/"myProject"/"myProjectClassWithMainMethod" 中的 class 中,我将所有测试 Classes 在路径 src/test/java/"myProject"/test/"TestClasses".

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