У меня есть проект, в котором мы создали набор тестов на селен, используя rspec и capybara, которые запускаются на удаленном сервере.Это означает, что эти тесты не выполняются в том же экземпляре / среде Rails, что и приложение, и, следовательно, не имеют доступа к этим приложениям, которые срабатывают задачи.очистка / восстановление базы данных перед каждым запуском.Мы разворачиваем приложение с помощью задачи сборки Jenkins, а затем, в случае успеха, запускаем тесты на селен.Мы используем Selenium2, и тесты выполняются через SeleniumServer (ранее Selenium Grid).У нас есть возможность запустить задачу Cap, когда мы развертываем приложение для восстановления БД.
Вопрос в том, как выполнить восстановление, минимизируя количество миграций, которое нам нужно сделать (предпочтительно ограничивая миграциитолько самым последним) и предварительным заполнением базы данных необходимыми данными.
Некоторые интересные вещи, которые следует отметить о нашей установке: у нас есть немало информации для заполнения, не Gigs этого, но большечем то, что вы хотели бы ввести в исходный файл, и у нас есть полностью секционированная база данных с публичными и приватными схемами.У нас есть мультитенантное приложение, и мы используем частные схемы для изоляции доступа к данным.
Итак, каковы некоторые способы, которыми другие люди использовали для решения этой проблемы?
Я думаю, что большинство людейиспользуйте очиститель базы данных для этой проблемы, но, как я уже говорил, тесты на селен выполняются вне среды Rails, поэтому очиститель базы данных работать не будет.