Поделиться через


Практическое руководство. Отладка во время выполнения теста в решении 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

  1. Создайте проект веб-узла ASP.NET, который требуется протестировать, а также модульный тест ASP.NET для тестирования.

    При создании этого проекта веб-узла в диалоговом окне Новый веб-узел из списка Расположение выберите HTTP или FTP. Это гарантирует, что ведущим процессом будет IIS.

    Дополнительные сведения см. в разделе Практическое руководство. Создание модульного теста ASP.NET.

  2. Включите отладку в веб-проекте ASP.NET. Для этого измените файл веб-конфигурации проекта. Если проект уже содержит файл Web.config, переходите к шагу 4. В противном случае добавьте его следующим образом: щелкните правой кнопкой мыши проект веб-узла в решении и выберите команду Добавить новый элемент.

    Откроется диалоговое окно Добавление нового элемента.

  3. В диалоговом окне Добавление нового элемента выберите Файл веб-конфигурации и нажмите кнопку Добавить.

    Файл с именем Web.config будет добавлен в проект веб-узла. Дополнительные сведения об использовании файлов Web.config см. в разделе Практическое руководство. Включение отладки для приложений ASP.NET.

  4. В файле Web.config измените строку <compilation debug="false"/> на <compilation debug="true"/>.

  5. (Необязательно) Задайте точки останова в модульном тесте ASP.NET в продуктивном коде для веб-узла.

  6. Присоедините отладчик к процессу IIS. Для этого в меню Отладка выберите Присоединиться к процессу.

    Откроется диалоговое окно Присоединение к процессу.

  7. В области Доступные процессы найдите имя процесса, к которому необходимо присоединить отладчик.

    Если нужный процесс отсутствует в списке, можно просмотреть другие выполняющиеся процессы. Для этого щелкните Показать процессы, запущенные всеми пользователями и Показать процессы во всех сеансах.

  8. В области Доступные процессы выделите имя процесса и нажмите Присоединить.

    Если присоединяемый процесс не запущен, нажмите Отмена и запустите процесс. Для этого в обозревателе решений щелкните правой кнопкой мыши проект веб-узла, а затем выберите пункт Просмотр в обозревателе. Далее, щелкните Отладка и выберите Присоединиться к процессу еще раз; процесс будет запущен и показан в области Доступные процессы. Выделите имя процесса и нажмите Присоединить.

  9. Запустите тест.

    Для этого в окне представления теста щелкните правой кнопкой мыши тест, который необходимо отладить, и выберите команду Выбор для отладки.

    ms243172.alert_note(ru-ru,VS.90).gifПримечание.

    При выполнении тестов вместо команды Выбор для отладки можно выбрать Выполнить выбранное. Разница заключается в том, что при выборе команды Выбор для отладки, отладчик автоматически отсоединяется по окончании теста, а если выбрать команду Выполнить выбранное, присоединение отладчика сохраняется. Команда Выполнить выбранное может оказаться более полезной, особенно если планируется запускать тесты несколько раз во время отладки и при этом сохранять присоединение к процессу. Если была выбрана команда Выполнить выбранное и необходимо по окончании отладки отсоединить процесс, в меню Отладка выберите команду Остановить отладку или нажмите сочетание Shift+F5.

Отладка при выполнении с ASP.NET Development Server

Отладка во время выполнения теста с ASP.NET Development Server

  1. Создайте проект веб-узла ASP.NET, который требуется протестировать, а также модульный тест ASP.NET для тестирования.

    При создании этого проекта веб-узла в диалоговом окне Новый веб-узел из списка Расположение выберите "Файловая система". Это гарантирует, что ведущим процессом будет ASP.NET Development Server.

    Дополнительные сведения см. в разделе Практическое руководство. Создание модульного теста ASP.NET.

  2. Включите отладку в веб-проекте ASP.NET. Для этого измените файл веб-конфигурации проекта. Если проект уже содержит файл Web.config, переходите к шагу 4. В противном случае добавьте его следующим образом: щелкните правой кнопкой мыши проект веб-узла в решении и выберите команду Добавить новый элемент.

    Откроется диалоговое окно Добавление нового элемента.

  3. В диалоговом окне Добавление нового элемента выберите Файл веб-конфигурации и нажмите кнопку Добавить.

    Файл с именем Web.config будет добавлен в проект веб-узла. Дополнительные сведения об использовании файлов Web.config см. в разделе Практическое руководство. Включение отладки для приложений ASP.NET.

  4. В файле Web.config измените строку <compilation debug="false"/> на <compilation debug="true"/>.

  5. Добавьте оператор System.Diagnostics.Debugger.Break() в начало модульного теста ASP.NET.

    ms243172.alert_note(ru-ru,VS.90).gifПримечание.

    Точки останова в коде будут использованы, только если они следуют за этим оператором System.Diagnostics.Debugger.Break().

    ms243172.alert_note(ru-ru,VS.90).gifПримечание.

    В C++ это оператор System::Diagnostics::Debugger::Break(). Сведения об использовании модульных тестов в Visual C++ см. в разделе Модульные тесты и C++.

  6. Задайте точки останова в модульном тесте ASP.NET в продуктивном коде для веб-узла.

  7. Запустите тест.

    Для этого в окне представления теста щелкните правой кнопкой мыши тест, который необходимо выполнить, и выберите команду Выполнить выбранное.

  8. По мере того, как начнется выполнение теста, откроется диалоговое окно. В этом диалоговом окне указано, что программа столкнулась с точкой останова.

  9. Щелкните Отладка, выберите экземпляр Visual Studio с загруженным решением и нажмите кнопку Да.

    Visual Studio присоединит процесс и выполнение будет приостановлено на операторе System.Diagnostics.Debugger.Break(). В меню "Отладка" можно выбрать команду Продолжить или можно нажать F5, чтобы продолжить выполнение до следующей точки останова.

    ms243172.alert_note(ru-ru,VS.90).gifПримечание.

    Удалите оператор System.Diagnostics.Debugger.Break() по окончании отладки. В противном случае при каждом запуске теста будет появляться диалоговое окно точки останова.

См. также

Задачи

Практическое руководство: отладка при выполнении теста

Практическое руководство. Создание модульного теста ASP.NET

Основные понятия

Общие сведения о модульных тестах ASP.NET

Другие ресурсы

Практическое руководство. Включение отладки для приложений ASP.NET