t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

Теги: #<Tag:0x00007f9afb290fe8> #<Tag:0x00007f9afb290ea8>

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

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

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

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

1 Симпатия

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

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

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

1 Симпатия