【问题标题】:Can I run a `@SpringBootTest` class multiple times with different configurations?我可以使用不同的配置多次运行“@SpringBootTest”类吗?
【发布时间】:2021-05-01 09:45:49
【问题描述】:

我有一个集成测试,它使用 @SpringBootTest 来启动一个 Spring 应用程序上下文,该上下文正在测试一个简单的 Spring Boot 应用程序。我正在使用 Spock 编写测试,我的构建工具是 Maven。

我正在寻找一种方法,可以使用不同的测试配置多次运行同一个测试类(我有一组配置选项,我需要确保某些配置选项排列的行为一致)。我的第一个想法是使用配置文件来定义确切的排列,也许它也可以通过以某种方式使用@TestPropertySource 来工作。但是,我看不出有任何方法可以多次运行测试类,每次使用不同的配置。

我知道我可以运行 all tests with a given profile,但就我而言,我只想将不同的配置应用于某些测试类。
我也可以使用where 块重复如here 所述的spock 测试,但这不允许我为每次运行切换弹簧配置

【问题讨论】:

    标签: spring-boot spock spring-test


    【解决方案1】:

    最简单的方法是使用简单的子类,即,您在抽象基类中定义所有测试,然后为每个变体子类化它,并向子类添加必要的注释。如果您只有一组有限的变体,这种方法很有效,并且可以提供良好的报告反馈,因为每个变体都作为自己的规范进行报告。

    【讨论】:

    • 你有一个例子的链接吗?
    • @JamesBowler 看看 https://github.com/spockframework/spock/blob/master/spock-spring/src/test/groovy/org/spockframework/spring/SpringSpecInheritance.groovy 刚刚放BaseSpec 中的所有测试,然后为每个变体添加像 SpringSpecInheritance 这样的子类。
    猜你喜欢
    • 1970-01-01
    • 2016-02-17
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2020-09-11
    • 2019-06-30
    • 1970-01-01
    相关资源
    最近更新 更多