Практическое руководство. Отладка во время выполнения теста в решении ASP.NET
Обновлен: Ноябрь 2007
Можно отлаживать как модульные тесты, так и веб-тесты, используемые для тестирования веб-проектов ASP.NET. Можно также отлаживать продуктивный код ASP.NET во время выполнения теста.
При этом во время тестирования кода ASP.NET, код теста не выполняется обычном образом в процессе VSTestHost. Вместо этого, он выполняется в процессе IIS или в процессе ASP.NET Development Server, если веб-узел основан на файлах. Так как тест выполняется в отличном от привычного для теста процессе, выбор параметра Выбор для отладки в окне представления теста или параметра Отладка помеченных тестов в редакторе списка тестов не приводит к отладке во время выполнения теста.
Подобным образом, пошаговое выполнение продуктивного кода ASP.NET невозможно при отключенной отладке и если отладчик не прикреплен к процессу ASP.NET Development Server или IIS.
В следующих процедурах будет создан проект веб-узла ASP.NET при помощи диалогового окна Новый веб-узел. В этом диалоговом окне в поле со списком Расположение следует выбрать местоположение веб-узла. Сделанный выбор определяет процесс, к которому в дальнейшем будет присоединен отладчик, а также шаги, по которым будет выполнена отладка во время выполнения теста в решении ASP.NET. Можно выбрать IIS или ASP.NET Development Server.
Отладка при выполнении с IIS
Отладка при выполнении с ASP.NET Development Server
Отладка при выполнении с IIS
В следующей процедуре к процессу будет присоединен отладчик. Имя процесса зависит от используемой операционной системы, поскольку версия IIS определяется установленной операционной системой. В следующей таблице показано, какой процесс может использоваться в каждой операционной системе. Для операционной системы в первом столбце используется имя процесса, указанное в третьем столбце в области Доступные процессы диалогового окна Присоединиться к процессу.
Операционная система |
Ведущий процесс |
Имя процесса ASP.NET |
Windows Server 2003 |
Службы IIS версии 6.0 |
w3wp.exe |
Windows XP |
Службы IIS версии 5.1 |
aspnet_wp.exe |
Windows 2000 |
Службы IIS версии 5.0 |
aspnet_wp.exe |
Отладка кода во время выполнения теста ASP.NET с IIS
Создайте проект веб-узла ASP.NET, который требуется протестировать, а также модульный тест ASP.NET для тестирования.
При создании этого проекта веб-узла в диалоговом окне Новый веб-узел из списка Расположение выберите HTTP или FTP. Это гарантирует, что ведущим процессом будет IIS.
Дополнительные сведения см. в разделе Практическое руководство. Создание модульного теста ASP.NET.
Включите отладку в веб-проекте ASP.NET. Для этого измените файл веб-конфигурации проекта. Если проект уже содержит файл Web.config, переходите к шагу 4. В противном случае добавьте его следующим образом: щелкните правой кнопкой мыши проект веб-узла в решении и выберите команду Добавить новый элемент.
Откроется диалоговое окно Добавление нового элемента.
В диалоговом окне Добавление нового элемента выберите Файл веб-конфигурации и нажмите кнопку Добавить.
Файл с именем Web.config будет добавлен в проект веб-узла. Дополнительные сведения об использовании файлов Web.config см. в разделе Практическое руководство. Включение отладки для приложений ASP.NET.
В файле Web.config измените строку <compilation debug="false"/> на <compilation debug="true"/>.
(Необязательно) Задайте точки останова в модульном тесте ASP.NET в продуктивном коде для веб-узла.
Присоедините отладчик к процессу IIS. Для этого в меню Отладка выберите Присоединиться к процессу.
Откроется диалоговое окно Присоединение к процессу.
В области Доступные процессы найдите имя процесса, к которому необходимо присоединить отладчик.
Если нужный процесс отсутствует в списке, можно просмотреть другие выполняющиеся процессы. Для этого щелкните Показать процессы, запущенные всеми пользователями и Показать процессы во всех сеансах.
В области Доступные процессы выделите имя процесса и нажмите Присоединить.
Если присоединяемый процесс не запущен, нажмите Отмена и запустите процесс. Для этого в обозревателе решений щелкните правой кнопкой мыши проект веб-узла, а затем выберите пункт Просмотр в обозревателе. Далее, щелкните Отладка и выберите Присоединиться к процессу еще раз; процесс будет запущен и показан в области Доступные процессы. Выделите имя процесса и нажмите Присоединить.
Запустите тест.
Для этого в окне представления теста щелкните правой кнопкой мыши тест, который необходимо отладить, и выберите команду Выбор для отладки.
Примечание. При выполнении тестов вместо команды Выбор для отладки можно выбрать Выполнить выбранное. Разница заключается в том, что при выборе команды Выбор для отладки, отладчик автоматически отсоединяется по окончании теста, а если выбрать команду Выполнить выбранное, присоединение отладчика сохраняется. Команда Выполнить выбранное может оказаться более полезной, особенно если планируется запускать тесты несколько раз во время отладки и при этом сохранять присоединение к процессу. Если была выбрана команда Выполнить выбранное и необходимо по окончании отладки отсоединить процесс, в меню Отладка выберите команду Остановить отладку или нажмите сочетание Shift+F5.
Отладка при выполнении с ASP.NET Development Server
Отладка во время выполнения теста с ASP.NET Development Server
Создайте проект веб-узла ASP.NET, который требуется протестировать, а также модульный тест ASP.NET для тестирования.
При создании этого проекта веб-узла в диалоговом окне Новый веб-узел из списка Расположение выберите "Файловая система". Это гарантирует, что ведущим процессом будет ASP.NET Development Server.
Дополнительные сведения см. в разделе Практическое руководство. Создание модульного теста ASP.NET.
Включите отладку в веб-проекте ASP.NET. Для этого измените файл веб-конфигурации проекта. Если проект уже содержит файл Web.config, переходите к шагу 4. В противном случае добавьте его следующим образом: щелкните правой кнопкой мыши проект веб-узла в решении и выберите команду Добавить новый элемент.
Откроется диалоговое окно Добавление нового элемента.
В диалоговом окне Добавление нового элемента выберите Файл веб-конфигурации и нажмите кнопку Добавить.
Файл с именем Web.config будет добавлен в проект веб-узла. Дополнительные сведения об использовании файлов Web.config см. в разделе Практическое руководство. Включение отладки для приложений ASP.NET.
В файле Web.config измените строку <compilation debug="false"/> на <compilation debug="true"/>.
Добавьте оператор System.Diagnostics.Debugger.Break() в начало модульного теста ASP.NET.
Примечание. Точки останова в коде будут использованы, только если они следуют за этим оператором System.Diagnostics.Debugger.Break().
Примечание. В C++ это оператор System::Diagnostics::Debugger::Break(). Сведения об использовании модульных тестов в Visual C++ см. в разделе Модульные тесты и C++.
Задайте точки останова в модульном тесте ASP.NET в продуктивном коде для веб-узла.
Запустите тест.
Для этого в окне представления теста щелкните правой кнопкой мыши тест, который необходимо выполнить, и выберите команду Выполнить выбранное.
По мере того, как начнется выполнение теста, откроется диалоговое окно. В этом диалоговом окне указано, что программа столкнулась с точкой останова.
Щелкните Отладка, выберите экземпляр Visual Studio с загруженным решением и нажмите кнопку Да.
Visual Studio присоединит процесс и выполнение будет приостановлено на операторе System.Diagnostics.Debugger.Break(). В меню "Отладка" можно выбрать команду Продолжить или можно нажать F5, чтобы продолжить выполнение до следующей точки останова.
Примечание. Удалите оператор System.Diagnostics.Debugger.Break() по окончании отладки. В противном случае при каждом запуске теста будет появляться диалоговое окно точки останова.
См. также
Задачи
Практическое руководство: отладка при выполнении теста
Практическое руководство. Создание модульного теста ASP.NET
Основные понятия
Общие сведения о модульных тестах ASP.NET
Другие ресурсы
Практическое руководство. Включение отладки для приложений ASP.NET