Java Spring启动测试:在所有测试之前和之后运行任务

Java Spring启动测试:在所有测试之前和之后运行任务,java,spring,spring-boot,spring-boot-test,embedded-database,Java,Spring,Spring Boot,Spring Boot Test,Embedded Database,我想在所有spring启动测试之前运行一个任务(比如启动一个db),并在所有测试运行之后关闭db 我不想使用@Before或@BeforeClass,因为这会导致任务在每个测试或测试类之前和之后运行 我们希望在所有测试/测试类之前和之后运行它们 我们正在测试类上使用@SpringBootTest注释。 _要在所有测试开始之前执行某些操作,您可以通过在测试包中定义一个类并用@Configuration注释它来操纵spring启动上下文的开始。在那里,您可以进行自定义登录,比如在不同的数据源或其他东

我想在所有spring启动测试之前运行一个任务(比如启动一个db),并在所有测试运行之后关闭db

我不想使用@Before或@BeforeClass,因为这会导致任务在每个测试或测试类之前和之后运行

我们希望在所有测试/测试类之前和之后运行它们

我们正在测试类上使用@SpringBootTest注释。
_

要在所有测试开始之前执行某些操作,您可以通过在测试包中定义一个类并用
@Configuration
注释它来操纵spring启动上下文的开始。在那里,您可以进行自定义登录,比如在不同的数据源或其他东西上填充
数据源初始化器


对于事后测试,您可以实现一个ShutdownHook,它也在您的测试包中实现,这样当spring引导上下文关闭时,它将执行您的钩子。

我不知道您将如何处理这个bd以及使用哪种db?请尝试plz提供更多细节!我们想知道如何在所有测试之前和之后运行任务。旋转db只是任务的一个例子。如果您使用一个超类,在该超类中定义了用
@beforeal
注释的init方法,以及另一个用
@aftereal
注释的方法,那么您的所有测试类都扩展了该超类?但是我们有很多测试。这将在每个测试类之前和之后运行任务,但我们只想运行一次。我们正在考虑旋转一个db(),我们想旋转它并关闭它一次。