Комментарии 14
Для маленького проекта dockertest, что бы поднять из теста postgres и получить коннекшен; какой-нибудь migrate что бы накатить миграции.
0
Смысл переименования таблиц в запросах не очень понятен. В постгресе же можно задать схему по умолчанию для текущей сессии.
0
Таблицы не переименовываются. Создается временная схема, в ней создается нужная таблица. Соединение работает на указанной схеме. Т.е. каждый тест работает со своей схемой, потому можно хоть два теста на одной таблице запустить, например проверку вставки, List и удаление — они будет независимы по данным.
0
Это я понимаю, но автор руками в каждом запросе перед именем таблицы вставляет имя схемы. Регекспами. Это хрупко и неполно (как с функциями быть, например, они тоже в схемах определяются), но к тому же и не нужно — текущую схему можно задать через set search_path и дальше использовать немодифицированные запросы.
UPD: точнее, поскольку тут go, то использовать надо параметр search_path в connection string.
UPD: точнее, поскольку тут go, то использовать надо параметр search_path в connection string.
0
А почему бы не выполнять каждый тест в своей транзакции? В этом случае
1. не надо менять имя схемы
2. можно гонять тесты и на боевой БД
3. можно гарантировать, что код в БД поменяется только при успешном прохождении тестов
1. не надо менять имя схемы
2. можно гонять тесты и на боевой БД
3. можно гарантировать, что код в БД поменяется только при успешном прохождении тестов
0
А теории да, а на практике что?
0
На практике миграцию мы делаем так —
1. BEGIN;
2. Удалить схему со старым кодом
3. Создать схему с новым кодом
4. Прогнать тесты нового кода
5. При успехе — коммит
Правда, у нас параллельность не очень актуальна — 300+ тестов проходят за пару минут, делаем подряд
1. BEGIN;
2. Удалить схему со старым кодом
3. Создать схему с новым кодом
4. Прогнать тесты нового кода
5. При успехе — коммит
Правда, у нас параллельность не очень актуальна — 300+ тестов проходят за пару минут, делаем подряд
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Публикации
Изменить настройки темы
Параллельные интеграционные тесты базы данных Postgresql в приложении GO