如何在所有测试之前启动一次服务器并在所有测试之后停止?

How to start server once before and stop after all tests?

我想在所有测试之前启动一次服务器,然后在所有测试执行完毕后关闭服务器。

在 Spring Boot 1.3 中,我可以创建一个 @Component@PostConstruct 来在执行测试之前启动服务器一次,然后 @PreDestroy 在执行测试之后停止服务器已执行所有测试。

升级到 Spring Boot 1.5 后,@PostConstructevery @Test 方法之前被调用。 @PreDestroy 被调用 every @Test 但仅在 all 测试执行后!

发生了什么变化and/or我现在应该怎么做?

类似问题及答案 -

显然,我在升级时变得 聪明 ,并将我的 WebEnvironment 更改为使用 RANDOM_PORT。这会导致每个测试的上下文缓存都是唯一的 class,这又会导致每个测试都重新创建 @Component

谢谢