Mar*_*ars 3 testing spring tomcat spring-test spring-boot
我正在尝试测试我的 SpringBoot 应用程序。当我像往常一样启动它时,它会按预期启动 Tomcat 服务,并在 Spring 徽标之后将其登录到控制台。
然而,当我执行 @SpringBootTest 类时,它似乎没有启动 Tomcat 服务,因为在测试中无法访问 URL,并且在 Spring 徽标之后,有关 Tomcat 服务的所有日志都丢失了。
Stackoverflow 上的一个回答说:
使用 @SpringBootTest 运行测试默认会启动嵌入式服务器。默认情况下,它运行在MOCK环境中。
我就是这样理解的。但是为什么我的测试无法正常启动包含 Tomcat 服务的应用程序?
我通过这样做找到了解决方案:
将测试全部放在应用程序类具有的层次结构中。我的 Springboot Main Method 位于路径 src/main/java/ "myProject" /"myProjectClassWithMainMethod" 中的类中,我将所有测试类放在路径 src/test/java/ "myProject"/test/ "TestClasses" 中。
最后也是最重要的是,使用 @SpringBootTest 注释每个 Testclass,并通过添加 (webEnvironment = WebEnvironment.DEFINED_PORT) 指定它应该以定义的端口开头。所以每个类都有注释@SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT)。
| 归档时间: |
|
| 查看次数: |
1570 次 |
| 最近记录: |