фонSQL Server Application - Восстановление базы данных в исходное состояние
Мне нужно написать несколько тестов интеграции в C# (около 120 из них) для приложения C#/SQL Server. Теперь, изначально перед любым тестом, база данных уже будет там, причина, по которой это будет происходить, заключается в том, что будет запущено множество скриптов для ее настройки (около 20 минут работы). Теперь, когда я запускаю свой тест, будет обновлено несколько таблиц (операции CRUD). Напр. в 10-11 таблицах будет добавлено несколько строк и скажем в 15-16 таблицах, несколько строк будут обновлены, а в 4-5 таблицах будут удалены несколько строк.
Проблема
After
каждый тест запускается, the database
потребности быть reset
в его исходное состояние. Как я могу это достичь?
Bad Solution
После каждого прогона теста, re-run
база данных creation scripts
(20 минут времени выполнения). Поскольку будет около 120 тестов, это доходит до 40 часов, что не является вариантом. Во-вторых, есть процесс, который имеет несколько соединений, открытых против этой базы данных, поэтому базу данных нельзя отбрасывать/воссоздавать.
Хорошее решение?
Я хотел бы знать, есть ли другой способ решения этой проблемы? Другая проблема заключается в том, что для каждого из этих тестов я даже не знаю, какие таблицы будут обновлены, и мне придется вручную перейти и проверить, чтобы какие таблицы были обновлены в любом случае, если бы я был удален, верните базу данных это оригинальное состояние вручную, записывая запросы.
взять резервную копию в начале, восстановить между каждым тестом? – BugFinder
как @BugFinder сказал создать резервную копию с пустой базой данных и использовать скрипт для восстановления перед тестами –
@BugFinder и Себастьян - извините, просто изменил вопрос. Существует процесс, который имеет несколько соединений, открытых против этой базы данных, поэтому нельзя удалять/воссоздавать базу данных. Это приведет к тому, что процесс завершится. – VVV