тут настал интересный вопрос что хотелось бы как-то тестировать запросы (сервис свежий, пилился лишь бы работал) в эластик. Причём желательно не мокать...
Аля поднимаем в докере эластик и запускаем тесты в тестах загружаем какие-то условные индексы с данными в эластик и начинаем чекать что наши методы возвращают то что мы ожидаем, кто-нибудь делал что-нибудь похожее?
А проблема в чём?
Да в целом я пока не могу найти примеров того как это лучше делать, везде Mock, Mock, Mock.... И вот непонятно, неужели делать всё на моках, или есть вариант с использованием реально поднятого инстанса эластика Как обычно хотелось бы атомарность тестов и консистентность данных в эластике ну и очистка данных перед тестом тоже, вот и интересно кто-нибудь такое делал или нет?) Или вы тоже всё Мокаете?
Делаем подобное с postgres. В одних проектах через связку dockertest+testify, в других через docker compose (главное не забыть пробросить порт с хоста, чтобы можно было запускать тесты прямо из ide)
Ваша фамилия ассоциируется у меня с компанией Флант ;D думаю вам стоит доверять)
При этом вы тесты можете запускать в параллели? (просто интересно)
Да. Есть несколько подходов: тупо запускать несколько контейнеров с базой или же делать create database / drop database
это интеграционные тесты. зависит от ci/cd которого юзаете, если юзаете. dockertest в целом неплох, но с gitlab CI не особо дружен. если gitlab, то проще в джобах поднять нужные контейнера. а для локального прогона тестов поднимать контейнера самому ручками
Ну это да, в том плане что инстанс докера с эластиком уже будет поднят. Как тесты в какой-нибудь джанге, они же сами бд не поднимают, они конектятся в существуещей поднятой бд, нет бд нет тестов)
в TestMain инициализируете тестовые ресурсы - базы, эластики. прогоняете тесты. ну соединения с базами и т.д. в TestMain можно
А таким не пробовали?https://golang.testcontainers.org/ В мире джавы testcontainers популярны. Позволяют не запускать ручками в дев разработке, а цепляются к жизненному циклу теста
Обсуждают сегодня