【问题标题】:Spring Boot Integration Tests - How to run multiple test classes with a single context?Spring Boot 集成测试 - 如何在单个上下文中运行多个测试类?
【发布时间】:2019-07-18 13:47:15
【问题描述】:

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

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

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

【问题讨论】:

  • 如果你不想为每个测试用例启动spring boot,那么你需要把它们都放在一个类中

标签: java spring spring-boot integration-testing


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 2020-03-18
    • 2020-12-05
    • 2020-02-10
    • 2019-07-06
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多