Я использую TestContainers с Spring Boot для запуска модульных тестов для таких репозиториев:
@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. Можно ли повторно использовать один и тот же экземпляр во всех тестах? Шаблон Singleton не помогает, поскольку каждый тест запускает новое приложение.
Я также пробовал testcontainers.reuse.enable=true
в .testcontainers.properties
и .withReuse(true)
, но это не помогло.
testcontainers.reuse.enable=true
- не помогает. - person Martin Schröder   schedule 17.06.2020@TestConfiguration
как@Bean
, а затем импортируйте эту конфигурацию во все соответствующие тесты. - person Nikolai Shevchenko   schedule 17.06.2020@ContextConfiguration(initializers
, и я не могу заставить его там работать. - person Martin Schröder   schedule 17.06.2020