Да, вы можете использовать функцию повторного использования (в альфа-состоянии) Testcontainers, чтобы не отключать контейнер после теста.
Для этого вам нужны Testcontainers ›= 1.12.3 и согласие с файлом свойств ~/.testcontainers.properties
testcontainers.reuse.enable=true
Затем объявите свой контейнер для повторного использования:
static PostgreSQLContainer postgreSQLContainer = (PostgreSQLContainer) new PostgreSQLContainer()
.withDatabaseName("test")
.withUsername("duke")
.withPassword("s3cret")
.withReuse(true);
и убедитесь, что не используете аннотацию JUnit 4 или JUnit 5 для управления жизненным циклом вашего контейнера. Лучше используйте одноэлементные контейнеры или запустите их внутри @BeforeEach
для себя:
статический финал PostgreSQLContainer postgreSQLContainer;
static {
postgreSQLContainer = (PostgreSQLContainer) new PostgreSQLContainer()
.withDatabaseName("test")
.withUsername("duke")
.withPassword("s3cret")
.withReuse(true);
postgreSQLContainer.start();
}
Эта функция скорее предназначена для ускорения последующих тестов, поскольку контейнеры все еще будут работать, но я думаю, это также подходит для вашего варианта использования.
Подробное руководство можно найти здесь.
person
rieckpil
schedule
04.07.2020