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


Практическое руководство. Отладка во время выполнения теста в решении ASP.NET

Можно отлаживать как модульные тесты, так и веб-тесты, используемые для тестирования веб-проектов 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 с IIS

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

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

  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. Запустите тест.

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

    Примечание

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

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

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

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

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

  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.

    Примечание

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

    Примечание

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

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

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

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

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

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

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

    Примечание

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

См. также

Задачи

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

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

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