如何在多个SpringBootTests之间重用测试容器?
2022-09-02 09:01:10
我正在使用带有Spring Boot的TestContainers来运行存储库的单元测试,如下所示:
@Testcontainers
@ExtendWith(SpringExtension.class)
@ActiveProfiles("itest")
@SpringBootTest(classes = RouteTestingCheapRouteDetector.class)
@ContextConfiguration(initializers = AlwaysFailingRouteRepositoryShould.Initializer.class)
@TestExecutionListeners(listeners = DependencyInjectionTestExecutionListener.class)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
@Tag("docker")
@Tag("database")
class AlwaysFailingRouteRepositoryShould {
@SuppressWarnings("rawtypes")
@Container
private static final PostgreSQLContainer database =
new PostgreSQLContainer("postgres:9.6")
.withDatabaseName("database")
.withUsername("postgres")
.withPassword("postgres");
但是现在我有14个这样的测试,每次运行测试时,都会启动一个新的Postgres实例。是否可以在所有测试中重用同一实例?单例模式没有帮助,因为每个测试都会启动一个新的应用程序。
我也尝试过和,但这没有帮助。testcontainers.reuse.enable=true
.testcontainers.properties
.withReuse(true)