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


Тестирование веб-узлов и веб-служб в командной среде

Обновлен: Ноябрь 2007

В первый раз веб-узлы тестируются, как правило, на компьютере разработчика. Однако иногда возникает необходимость использовать тесты совместно с другими участниками команды. В более формальной среде при работе над проектом может потребоваться возвратить рабочий код и тесты в систему управления версиями и использовать эти тесты в лаборатории построения для тестирования кода. В любом из этих сценариев модульные тесты должны иметь возможность определить тестируемый веб-узел вне зависимости от его расположения — на локальном компьютере или удаленном ресурсе. Чтобы предоставить обработчику тестов возможность определения веб-узла, используется переменная %PathToWebRoot%, как описано в следующих подразделах данного раздела.

Выбор сервера

Разрабатываемый веб-узел или веб-службу можно запустить на сервере разработки ASP.NET или на веб-сервере, например сервере IIS. От выбора сервера зависит способ тестирования веб-узла или веб-службы, как описано в следующих подразделах:

  • Тестирование веб-служб с помощью сервера разработки ASP.NET

  • Тестирование веб-узлов с помощью сервера разработки ASP.NET

Связанные вопросы тестирования: дополнительные сведения

Модульные тесты можно использовать для тестирования веб-методов веб-служб, как описано в разделе Тестирование веб-служб, а также для тестирования бизнес-логики веб-узла, как описано в разделе Общие сведения о модульных тестах ASP.NET. Кроме того, веб-тесты можно использовать для тестирования веб-страниц, как описано в разделе Работа с веб-тестами

Тестирование веб-служб с помощью сервера разработки ASP.NET

Для тестирования веб-служб с помощью сервера разработки ASP.NET в локальной файловой системе следует пометить метод модульного теста атрибутом AspNetDevelopmentServer. Чтобы определить расположение веб-узла, в параметре атрибута AspNetDevelopmentServer указывается путь к корневому каталогу узла. Для этого используется переменная %PathToWebRoot%, как описывается в подразделе Установка переменной pathToWebRoot. Дополнительные сведения см. в разделе Тестирование веб-служб.

Дополнительные сведения об использовании атрибута AspNetDevelopmentServer и его синтаксисе см. в разделах AspNetDevelopmentServerAttribute и Тестирование веб-служб.

Тестирование веб-узлов с помощью сервера разработки ASP.NET

При создании модульного теста ASP.NET, предназначенного для тестирования веб-узла в файловой системе компьютера, тест помечается атрибутом AspNetDevelopmentServerHost. Для этого атрибута требуется параметр pathToWebApp. По умолчанию созданный модульный тест ASP.NET содержит в параметре pathToWebApp переменную %PathToWebRoot%. Значение этой переменной устанавливается в соответствии с процедурой, описанной в подразделе Установка переменной pathToWebRoot. Дополнительные сведения о тестировании веб-узлов с помощью сервера разработки ASP.NET см. в разделе Общие сведения о модульных тестах ASP.NET.

Дополнительные сведения об использовании атрибута AspNetDevelopmentServerHost и его синтаксисе см. в разделах AspNetDevelopmentServerHostAttribute и Общие сведения о модульных тестах ASP.NET.

Установка переменной pathToWebRoot

В каждом модульном тесте, который предполагается использовать для тестирования веб-узла или веб-службы, запущенной на сервере разработки ASP.NET, необходимо указать строку %pathtowebroot%\\<имя_веб-узла> в параметре pathToWebApp атрибута AspNetDevelopmentServer или AspNetDevelopmentServerHost. Этот параметр задается следующим образом.

  • Используйте строку %PathToWebRoot% буквально. Используйте ее, даже если тесты в настоящий момент выполняются только компьютере разработчика. Это позволит обеспечить достаточную гибкость для совместного использования тестов с другими разработчиками и их выполнения в среде Team Foundation Build.

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

    При тестировании на одном локальном компьютере нескольких веб-узлов, которые не располагаются в общем корневом каталоге, может потребоваться жестко закодировать путь к каждому веб-узлу вместо использования переменной %PathToWebRoot%. Важно. Жестко кодировать пути следует только при локальном тестировании, поскольку при жестком кодировании невозможно совместное использование тестов для данного веб-узла в более широкой среде. Прежде чем начать тестирование веб-узла совместно с другими участниками команды или в среде Team Foundation Build, обязательно измените путь, чтобы он включал переменную %PathToWebRoot%.

  • <имя_веб-узла> — это имя тестируемого веб-узла. Это значение должно в точности совпадать с именем веб-узла, отображаемым в обозревателе решений.

Пример использования параметра pathToWebApp см. в подразделе Пример метода теста.

Задание значения переменной %PathToWebRoot%

Способ получения переменной %PathToWebRoot% своего значения зависит от среды, в которой она используется. Ниже перечислены два возможных случая.

  • Установка %PathToWebRoot% в среде Team Foundation Build

  • Установка %PathToWebRoot% в других средах совместной работы

Установка %PathToWebRoot% в среде Team Foundation Build

При использовании переменной %PathToWebRoot% в среде Team Foundation Build ее значение определяется на основе сведений, содержащихся в типе построения, и устанавливается средой Team Foundation Build автоматически.

Например, если тесты выполняются для версии "Release" узла "WebSite1", построенного для платформы x86, для переменной PathToWeb устанавливается следующее значение:

<build directory>/binaries/x86/Release/_precompiled/WebSite1

Установка %PathToWebRoot% в других средах совместной работы

Если переменная %PathToWebRoot% используется в любой среде, отличной от Team Foundation Build, значение этой переменной устанавливается следующим образом. При выполнении теста система выполняет поиск значения переменной %PathToWebRoot% в одном или нескольких местах, перечисленных ниже.

  • Расположение, используемое по умолчанию для новых проектов веб-узлов. По умолчанию система использует путь к каталогу, в котором средой Visual Studio создаются новые проекты веб-узлов. Значением по умолчанию является следующий каталог: <drive>:\Documents and Settings\<user name>\My Documents\Visual Studio 2005\WebSites\.

  • Переменная среды PathToWebRoot. Если данная переменная среды определена на компьютере тестирования, то используется это значение, и оно переопределяет любое значение из каталога по умолчанию для новых проектов веб-узлов.

  • Значение корневого каталога веб-приложения. Чтобы установить это значение, выберите в меню Сервис пункт Параметры, разверните узел Инструменты тестирования и щелкните Выполнение теста. Если это значение установлено, оно переопределяет любые значения переменной среды PathToWebRoot и каталога по умолчанию для новых проектов веб-узлов.

Пример метода теста

Показанный ниже метод теста, предназначенный для тестирования веб-службы, помечен атрибутом AspNetDevelopmentServer. Для атрибута AspNetDevelopmentServer требуется параметр pathToWebApp. Использование переменной %PathToWebRoot% в параметре pathToWebApp выделено в примере полужирным шрифтом.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting.Web;
using TestProject1.localhost;

[TestMethod]
[AspNetDevelopmentServer("HelloWorldServer", "%PathToWebRoot%\\WebSite1")]

public void HelloWorldTest()
{
    HelloWorldService target = new HelloWorldService();

    WebServiceHelper.TryUrlRedirection(
                                       target, 
                                       TestContext,
                                       "HelloWorldServer"
                                       );

    string expected = "Hello World";
    string actual;

    actual = target.HelloWorld();

    Assert.AreEqual(
                    expected, 
                    actual,

"TestProject1.localhost.HelloWorldService.HelloWorld did not return the expected value."
                    );
}

См. также

Задачи

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

Практическое руководство. Параметризация веб-сервера

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

Веб-серверы в Visual Web Developer

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

Ссылки

Microsoft.VisualStudio.TestTools.UnitTesting.Web

AspNetDevelopmentServerAttribute

AspNetDevelopmentServerHostAttribute

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

Тестирование веб-служб

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