
В моей среде разработки есть SQL-сервер (MS SQL 2005). У меня есть набор модульных тестов для некоторого кода .net, который будет подключаться к базе данных и выполнять некоторые операции. Если тестируемый код работает правильно, то база данных должна быть в том же (или похожем) состоянии, в котором она была до тестов.
Однако я хотел бы иметь возможность откатить базу данных к ее состоянию до запуска тестов. Один из способов сделать это — программно использовать транзакции для отката каждой тестовой операции, но это сложно и обременительно для программирования; это может легко привести к ошибкам в тестовом коде.
Хотелось бы мне иметь возможность проводить тесты уверенно, зная, что если они уничтожат мои таблицы, я смогу их быстро восстановить?
Как лучше всего сохранить снимок одной из моих баз данных с ее таблицами, чтобы можно было легко восстановить базу данных до состояния, существовавшего до начала теста?
решение1
решение2
если у вас был SQL Server 2008, то вы могли бы взятьснимок, запустите все тесты, а затем восстановите базу данных до точки снимка с помощью:
RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT