автоматическое тестирование, работа с mysql

В настоящее время я создаю автоматические тесты с использованием селена и Behat для приложения PHP, которое использует MySQL для базы данных с двигателем InnoDB. База данных составляет около 50 ГБ с большим количеством данных в ней. Тесты проходят нормально, но в настоящее время я борюсь с очисткой перед каждым новым запуском теста.

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

Мой вопрос: есть ли хорошая практика для быстрого восстановления БД до известного состояния (50 ГБ — это много данных) непосредственно перед выполнением функций Behat?


person Ferencz Farkas    schedule 03.08.2013    source источник


Ответы (2)


Не тестируйте с 50 ГБ данных. Создайте базу данных с меньшим количеством данных специально для тестирования.

person Oswald    schedule 03.08.2013

Вы можете использовать транзакции с режимом «пробного запуска», который откатит все запросы. Это не восстановит определенное состояние вашей БД, но позволит вам взаимодействовать с вашими данными без внесения каких-либо изменений.

person Nassim    schedule 19.09.2013