Я хотел бы использовать Selenium для тестирования веб-приложения, но для того, чтобы сделать это успешно, тесты должны выполняться в базе данных в известном состоянии.
Запись и выполнение тестов Selenium выходит за рамки этого веб-сайта, поэтому я ищу только рекомендации о том, как лучше всего восстанавливать базу данных после каждого выполнения теста.
Некоторые детали:
В идеале процесс должен быть написан по сценарию, чтобы его можно было часто повторно запускать автоматически с помощью запланированной задачи.
Самый простой и быстрый способ сделать это - поместить базу данных на машину OpenSolaris с помощью ZFS и сделать снимок ZFS перед запуском Oracle.
Поскольку вы уже заплатили за лицензию Windows Oracle, лучший способ сделать это - настроить сервер Nexenta и использовать iSCSI для доступа к ZFS как к обычной файловой системе Windows. Главное помнить, что нельзя создавать и восстанавливать моментальные снимки во время работы Oracle.
Снимок и восстановление почти мгновенно.
Если вы видите имя Illumos, это новое имя OpenSolaris.
Чтобы сделать это программно, вы можете использовать DBUnit (Ява).
С инструментами Oracle вы можете использовать SQLLDR.
Я бы заключил сценарий оболочки с помощью expdp для экспорта схемы и impdp для ее повторного импорта. Прежде чем запускать свои тестовые примеры, экспортируйте базу данных и автоматизируйте тесты на селен, чтобы они выполняли сценарий оболочки после запуска, который выполнит командную строку impdp (или imp для более старой версии Oracle) для восстановления базы данных.
Вот как мы это делаем в наших тестах.