Spring 引导集成测试 - 如何 运行 多个测试 类 使用单个上下文?

Spring Boot Integration Tests - How to run multiple test classes with a single context?

我有一个 Spring 引导项目,其中定义了几个 api 端点。我目前正在为这些 api 中的每一个编写集成测试。我将我的测试 classes 注释如下。

@RunWith(SpringRunner.class)
@SpringBootTest
...

现在,对于我的每个测试 class,都会设置一个新的上下文来执行它们,这需要时间。我更喜欢将每个 api 端点的测试用例保存在单独的 classes 中,以便逻辑地组织它们,但我不希望每次添加新的端点时我的测试执行时间都增加控制器 class 和相应的测试 class。我在这里做错了什么?

只要您的测试使用相同的上下文(模拟相同的 bean,相同的配置),spring 默认情况下会在创建新上下文之前重用合适的上下文。

一个例外是当您使用 @DirtiesContext 注释测试时 这告诉 Runner 使使用的上下文无效。