我正在使用spring-boot
,spring-boot-test
,DataSourceAutoConfigration
和org.testcontainers
来准备数据库。在春季测试中,我只想在配置文件org.testcontainer.mariadb
中运行ci
,而整个测试套件只能运行一次。
因为我在30〜40个测试类中使用@MockBean,所以ApplicationContext
也被创建了30〜40次。因此,如果我尝试将org.testcontainer
用作bean,那么该bean将被创建多次。
在这种情况下,如何在整个测试套件中仅对配置文件ci
运行org.testcontainer?
或更抽象的形式,如何创建按需要运行的spring初始化程序。
我认为我可以通过在<cinit>
中启动org.testcontainer来解决。但是由于在Spring生效之前被调用,所以我无法访问Spring环境来检查配置文件ci
。
答案 0 :(得分:0)
我可以使一个初始化器代替<cinit>
来运行org.testcontainer
作为单例。在启动任何自动配置之前,将调用初始化程序,并且可以访问ApplicationContext。