我可以使用不同的配置多次运行“@SpringBootTest”类吗?

l7r*_*7r7 6 spring-test spock spring-boot

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

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

我知道我可以使用给定的配置文件运行所有测试,但就我而言,我只想将不同的配置应用于某些测试类。
我还可以使用一个块来重复此处where所述的 spock 测试,但这不允许我为每次运行切换 spring 配置

Leo*_*ngs 4

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