Есть несколько стратегий, которые вы могли бы сделать для этого, я предполагаю, что вы используете WatiN с тестами Nunit или VS Unit для выполнения ваших тестов.
Использование транзакций
Подход, который используется при модульном тестировании, заключается в том, что вы «оборачиваете» весь тест в транзакцию и по завершении теста откатываете транзакцию обратно. В .net вы можете использовать System.Transactions для этого.
Создание "заглушки"
Создайте страницу в своем приложении, которая использует существующую бизнес-логику для удаления ваших данных. Эта страница должна быть защищена и в идеале даже не развернута в производство.
Такой подход я бы рекомендовал.
Позвоните в веб-службу
Разработайте веб-службу или позвоните в нее непосредственно из уровня приложения приложения, чтобы выполнить удаление. Вам, вероятно, также понадобится разработать это.
Очистить напрямую
Создайте несколько классов в своем тестовом коде для доступа к данным и их очистки.
С любым из них вам необходимо выполнить очистку до и после запуска теста, т. Е. В настройках теста и методах очистки теста. Причина, по которой вы делаете это дважды, заключается в том, что вы должны считать, что ваш тест не пройден и не очищен правильно.
Используйте Linq to Sql AFAIK, если вы используете Linq to sql, он работает в памяти и автоматически упаковывает все обновление в транзакцию. Если вы просто не вызываете SubmitChanges (); Тогда у тебя все будет хорошо, но я сам не проверял.