Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Чистка записей в базе после выполнения приемочного теста

database
codeception
Теги: #<Tag:0x00007f7b7053e6a0> #<Tag:0x00007f7b7053e4c0>

(Petr Sokolnikov) #1

Выполняются приемочные тесты при помощи CodeCeption.
Во время тестов создаются разные записи в базе.
Как почистить тестовые записи после выполнения теста?

У модуля Db есть возможность после и до тестирования загружать дамп. Но это не удобно, т.к. перед каждым тестом приходится делать свежий дамп базы, чтобы после теста на него вернуться.

Нет ли каких-либо более логичных инструментов?


(rmerkushin) #2

Если бд используется только вами создавайте нужные тестовые данные перед тестом и перед тестом очищайте бд чтобы не было накладок.


(Atorian) #3

В идеале тестовая база должна использоваться индивидуально.
Даже на CI сервере для каждого запуска тестов должна создаваться своя база.
Это очень важно для распараллеливания тестов.
В нашем проекте на SF2 мы добавили хуки в главный бутстрап файл:

  • полностью удаляем тестовую базу,
  • создаем новую,
  • накатываем миграции
  • подгружаем стандартные фикстуры (опционально)
  • делаем свежий дамп.
    Потом этот дамп перенакатываем на каждый тест.

Есть и второй вариант, но для него надо пропатчить кодсепшин.
Есть волшебный ДБ модуль, в нем есть метод накатывающий дамп.
Он умеет откатывать SQL стейтменты.
Теоритически можно его выделить и использовать для своих нужд.