【发布时间】:2018-08-15 07:20:53
【问题描述】:
我的项目有很多 Test 这样的类:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class RefererCheckerTest {
...
每次我想运行所有测试类时,每个人都会显示这样的日志:
2018-08-15 14:59:31.104 [主要] 信息 o.s.b.c.e.t.TomcatEmbeddedServletContainer [TomcatEmbeddedServletContainer.java:201] -Tomcat 在端口上启动: 63003 (http)
2018-08-15 14:59:31.112 [主要] 信息 c.b.s.m.filter.OAuthLoginTest [StartupInfoLogger.java:57] - 已启动 OAuthLoginTest 27.571 秒(JVM 运行 33.229)
似乎初始化一个 Spring Boot 项目及其嵌入式 Tomcat 需要花费很多时间。如果我有 100 个测试类,运行所有测试类将花费我 27.571 seconds *100。
在运行所有 100 个测试类时,我是否可以只初始化一次 Spring Boot 和 Embedded Tomcat?这样可以节省时间。
【问题讨论】:
-
不应该那样做。如果您使用相同的注释,则上下文和tomcat 将启动一次。如果他们这样做了,那么这些测试类中肯定有一些不同的东西(比如使用
@MockBean、@SpyBean或不同的属性等)。
标签: java spring spring-boot tomcat