gonkey icon indicating copy to clipboard operation
gonkey copied to clipboard

Реализовать механизм транзакций commit/rollback для фикстур

Open kulikovdmitr opened this issue 2 years ago • 1 comments

При взаимодействии с базой данных через фикстуры происходит изменения состояния базы данных, что может негативно влиять на работу приложения как при прогоне тестов на CI/CD, так и после него. На мой взгляд, для более чистого процесса тестирования - следует оборачивать все взаимодействия с базой данных в транзакции commit/rollback.

Дополнительно: Этот пример может подтвердить актуальность проблемы https://github.com/lamoda/gonkey/discussions/214 (в данном случае каскадное удаление не гарантирует сброс счётчика, и для современных postgresql нужно выполнить RESTART IDENTITY).

Хотя лучшее решение (на мой взгляд) - использовать транзакции. Было бы здорово, если бы это было реализовано.

kulikovdmitr avatar Jul 09 '23 20:07 kulikovdmitr

Сильно сомневаюсь что получится реализовать накатывание фикстур через транзакции. :( Пока транзакция с фикстурами не будет выполнена, другие запросы/транзакции из приложения не буду видеть её данные. А чтобы они смогли видеть, приложение должно использовать ту же транзакцию что была открыта в Gonkey. Это сломает обратную совместимость и заставит разработчиков приложения научить получать соединение извне и использовать по всему приложению.

fetinin avatar Sep 11 '23 19:09 fetinin