我正在使用spring-boot,spring-boot-test,DataSourceAutoConfigration和org.testcontainers来准备数据库。在春季测试中,我只想在profile ci中运行org.testcontainer.mariadb,对整个测试套件只运行一次。
因为我在30~40个测试类中使用@MockBean,所以ApplicationContext也被创建了30~40次。因此,如果我尝试使用org.testcontainer作为bean,那么这个bean将被创建很多次。
在这种情况下,我如何才能在整个测试套件中只运行org.testcontainer一次,并且只对配置文件ci运行一次?
或者以更抽象的形式,如何创建弹簧初始化器,以满足我的需要。
我想我可以通过在<cinit>中启动<cinit>来解决这个问题。但是因为是在Spring开始使用之前被调用的,所以我不能访问spring环境来检查概要文件ci。
发布于 2019-04-24 02:48:43
与<cinit>不同,我可以创建一个作为单例运行org.testcontainer的初始化器。初始化程序在任何AutoConfiguration启动之前被调用,并且可以访问ApplicationContext。
https://stackoverflow.com/questions/55806188
复制相似问题