Если запустить, в процессе , экземпляр веб-сервера разработки Visual Studio, а затем запустить тест WatiN, то вы можете заключить тест в один блок, например:
using (new TransactionScope())
{
var server = new Server(PORT_NUMBER, VIRTUAL_PATH, PHYSICAL_PATH);
server.Start();
try
{
using (var ie = new IE())
{
// TODO: perform necessary testing using ie object
}
}
finally
{
server.Stop();
}
}
и все ваши подключения к базе данных будут теоретически подключены к одной распределенной транзакции, и все их изменения будут отменены при удалении TransactionScope.
Чтобы запустить веб-сервер dev в процессе, вам нужно извлечь WebDev.WebHost.dll из GAC и сослаться на него в своем проекте - это источник класса Server в приведенном выше фрагменте. Пожалуйста, дайте мне знать, если вам нужны более подробные инструкции.
Вам необходимо убедиться, что MSDTC работает, и если между вами и базами данных есть брандмауэры, то в зависимости от настроек порта вы можете столкнуться с трудностями. Еще один дополнительный бонус запуска сервера в процессе заключается в том, что тесты WatiN теперь могут помочь в измерении покрытия кода.