также в проекте есть свойство ryuk.container.image=testcontainers/ryuk:0.3.3 который создает контейнер, который должен удалить все тестовые контейнеры после завершения тестов, но по каким-то причинам удаление не происходит
[list] [*]здесь мы создаём контейнеры [*]также в проекте есть свойство ryuk.container.image=testcontainers/ryuk:0.3.3 который создает контейнер, который должен удалить все тестовые контейнеры после завершения тестов, но по каким-то причинам удаление не происходит [/list] [code] public class TestContainersSpringContextCustomizerFactory implements ContextCustomizerFactory {
EmbeddedElasticsearch elasticsearchAnnotation = AnnotatedElementUtils.findMergedAnnotation( testClass, EmbeddedElasticsearch.class ); if (null != elasticsearchAnnotation) { log.debug("detected the EmbeddedElasticsearch annotation on class {}", testClass.getName()); log.info("Warming up the elastic database"); if (null == elasticsearchBean) { elasticsearchBean = beanFactory.createBean(ElasticsearchTestContainer.class); beanFactory.registerSingleton(ElasticsearchTestContainer.class.getName(), elasticsearchBean); // ((DefaultListableBeanFactory)beanFactory).registerDisposableBean(ElasticsearchTestContainer.class.getName(), elasticsearchBean); } testValues = testValues.and( "spring.elasticsearch.uris=http://" + elasticsearchBean.getElasticsearchContainer().getHttpHostAddress() ); } //similary code other for other containers } [/code]
В качестве примера покажу код одного из 4-х контейнеров, остальные пишутся аналогично
В качестве примера покажу код одного из 4-х контейнеров, остальные пишутся аналогично
р> [code] /** * Base class for starting/stopping ElasticSearch during tests. */ public class ElasticsearchTestContainer implements InitializingBean, DisposableBean {
private static final Logger log = LoggerFactory.getLogger(ElasticsearchTestContainer.class); private static final Integer CONTAINER_STARTUP_TIMEOUT_MINUTES = 10; private ElasticsearchContainer elasticsearchContainer;
@Override public void destroy() { if (null != elasticsearchContainer && elasticsearchContainer.isRunning()) { elasticsearchContainer.close(); } }
@Override public void afterPropertiesSet() { if (null == elasticsearchContainer) { elasticsearchContainer = new ElasticsearchContainer( DockerImageName.parse("docker-persistent.nexus.jaga.rt.ru/elasticsearch") .asCompatibleSubstituteFor("docker.elastic.co/elasticsearch/elasticsearch") .withTag("7.17.4")) .withStartupTimeout( Duration.of(CONTAINER_STARTUP_TIMEOUT_MINUTES, ChronoUnit.MINUTES)) .withSharedMemorySize(256000000L) .withEnv("ES_JAVA_OPTS", "-Xms256m -Xmx256m") .withEnv("xpack.security.enabled", "false") .withLogConsumer(new Slf4jLogConsumer(log)) .withReuse(true); } if (!elasticsearchContainer.isRunning()) { elasticsearchContainer.start(); } }
public ElasticsearchContainer getElasticsearchContainer() { return elasticsearchContainer; } } [/code]
У меня есть набор тестов JUnit, который состоит из трех небольших наборов тестов. При запуске этих тестов запускаются 2 докер-контейнера (оракул slim db и elasticsearch). Я хочу иметь возможность удалить эти тестовые контейнеры после завершения всех...
Контейнеры последовательностей C++
( vector , front_list, list и deque)
все они имеют метод Assign. Например, std::vector имеет
(цитата cppreference.com):
void assign( size_type count, const T& value );
В настоящее время я тестирую свое приложение с использованием тестовых контейнеров JDBC. У меня возникли проблемы с часовыми поясами и настройкой определенных параметров запроса в моих тестовых контейнерах, которые я могу сделать с помощью обычного...
Я разрабатываю интеграционные тесты для приложения .NET 6, которое использует MongoDB в качестве базы данных и интегрируется с RabbitMQ. Является ли это лучшим подходом для запуска интеграционных тестов с реальной базой данных MongoDB или мне...