Практическое руководство. Настройка модульных тестов для .NET Framework 3.5
При использовании Visual Studio 2010 требуемой версией .NET Framework по умолчанию в тестовых проектах является версия .NET Framework 4. Кроме того, в случае обновления тестовых проектов Visual Studio 2008 они по умолчанию обновляются до требуемой версии .NET Framework. Разработчик может изменить свойства проекта и явным образом указать в качестве требуемой версии .NET Framework 3.5.
Предупреждение
Чтобы изменить требуемую версию тестового проекта на .NET Framework 3.5, необходимо установить Visual Studio 2010 с пакетом обновления 1 (SP1).
Visual Studio 2010 с пакетом обновления 1 (SP1) поддерживает следующие базовые возможности модульного тестирования, ориентированные на .NET Framework 3.5:
можно создавать проекты модульного тестирования и указывать для них в качестве требуемой версии .NET Framework 3.5;
можно выполнять модульные тесты, ориентированные на .NET Framework 3.5, из Visual Studio 2010 с пакетом обновления 1 (SP1) на локальном компьютере;
можно выполнять модульные тесты, ориентированные на .NET Framework 3.5, из командной строки с помощью программы MSTest.exe;
можно выполнять модульные тесты на агенте построения в рамках построения.
Тестирование приложений SharePoint 2010
Перечисленные выше возможности также позволяют с помощью Visual Studio 2010 с пакетом обновления 1 (SP1) создавать модульные тесты и тесты интеграции для SharePoint 2010. Дополнительные сведения о разработке приложений SharePoint 2010 с помощью Visual Studio 2010 см. в разделах Разработка приложений SharePoint в Visual Studio, Построение и отладка решений SharePoint и Проверка и отладка кода SharePoint с помощью функций управления жизненным циклом приложений.
Ограничения
При изменении требуемой версии тестовых проектов на .NET Framework 3.5 действуют следующие ограничения:
в .NET Framework 3.5 настройка для различных версий поддерживается для тестовых проектов, содержащих только модульные тесты. Версия .NET Framework 3.5 не поддерживает какие-либо другие типы тестов, например закодированные тесты пользовательского интерфейса или нагрузочные тесты. Изменение требуемой версии .NET Framework заблокировано для всех типов тестов, кроме модульных тестов.
Выполнение тестов .NET Framework 3.5 поддерживается только для адаптера по умолчанию. Оно не поддерживается для адаптера ASP.NET. Приложения ASP.NET, которые должны выполняться в контексте сервера ASP.NET Development Server, должны быть совместимы с .NET Framework 4.
поддержка сбора данных отключена при запуске тестов, поддерживающих настройку для различных версий, включая .NET Framework 3.5. Покрытие кода можно обеспечить с помощью средств командной строки Visual Studio;
модульные тесты, использующие .NET Framework 3.5, нельзя выполнять на удаленном компьютере.
Изменение требуемой версии на .NET Framework 3.5 для проектов модульного тестирования Visual Basic
Создайте новый проект модульного тестирования Visual Basic. В меню Файл выберите команду Создать и щелкните Проект.
Откроется диалоговое окно Новый проект.
В области Установленные шаблоны разверните узел Visual Basic. Выберите Тест, а затем выберите шаблон Тестовый проект.
В текстовом поле Имя введите имя тестового проекта Visual Basic и нажмите кнопку ОК.
В обозревателе решений щелкните созданный тестовый проект Visual Basic правой кнопкой мыши и выберите пункт Свойства.
Будут показаны свойства тестового проекта Visual Basic.
Перейдите на вкладку Компиляция и нажмите кнопку Дополнительные параметры компиляции, как показано на следующем рисунке.
С помощью раскрывающегося списка Заданная исполняющая среда (все конфигурации) измените требуемую версию с .NET Framework 4 на .NET Framework 3.5, как показано в выноске В на следующем рисунке.
Примечание
Если появится сообщение об ошибке, выполните инструкции, доступные по указанной в сообщении ссылке, или воспользуйтесь процедурой Возможные дополнительные шаги по изменению требуемой версии тестовых проектов на .NET Framework 3.5.
Изменение требуемой версии на .NET Framework 3.5 для проектов модульного тестирования Visual C#
Создайте новый проект модульного тестирования C#. В меню Файл выберите команду Создать и щелкните Проект.
Откроется диалоговое окно Новый проект.
В области Установленные шаблоны разверните узел Visual C#. Выберите Тест, а затем выберите шаблон Тестовый проект.
В текстовом поле Имя введите имя тестового проекта Visual C# и нажмите кнопку ОК.
В обозревателе решений щелкните созданный тестовый проект Visual C# правой кнопкой мыши и выберите пункт Свойства.
Будут показаны свойства тестового проекта Visual C#.
На вкладке Приложение с помощью раскрывающегося списка Целевая рабочая среда измените требуемую версию с .NET Framework 4 на .NET Framework 3.5, как показано на следующем рисунке.
Примечание
Если появится сообщение об ошибке, выполните инструкции, доступные по указанной в сообщении ссылке, или воспользуйтесь процедурой Возможные дополнительные шаги по изменению требуемой версии тестовых проектов на .NET Framework 3.5.
Изменение требуемой версии на .NET Framework 3.5 для проектов модульного тестирования для управляемого кода C++/CLI
Создайте новый проект модульного тестирования для управляемого кода C++/CLI. В меню Файл выберите команду Создать и щелкните Проект.
Откроется диалоговое окно Новый проект.
Предупреждение
Если имеются модульные проекты, созданные с помощью Visual Studio 2008, и требуется построить проекты модульного тестирования C++/CLI, ориентированные на .NET Framework 3.5, с помощью Visual Studio 2010 с пакетом обновления 1 (SP1), необходимо установить пакет обновления 1 (SP1) для Visual Studio 2008 на Visual Studio 2008 перед использованием проектов в Visual Studio 2008.Это обязательное условие, которое должно выполняться при использовании в качестве требуемой версии .NET Framework 3.5.Будет недостаточно установить только распространяемый пакет .NET Framework 3.5.Средства Visual C++, такие как cl.exe в Visual Studio 2010, позволяют использовать в качестве требуемой версии только .NET 4 Framework.Поэтому для использования в качестве требуемой версии .NET Framework 3.5 необходимы средства из этой версии.Эти средства входят в состав Visual Studio, но не входят в состав .NET Framework.
В области Установленные шаблоны разверните узел Visual C++. Выберите Тест, а затем выберите шаблон Тестовый проект.
В текстовом поле Имя введите имя тестового проекта Visual C++ и нажмите кнопку ОК.
В обозревателе решений щелкните созданный тестовый проект Visual C++ правой кнопкой мыши и выберите пункт Отменить загрузку проекта.
В обозревателе решений щелкните незагруженный тестовый проект Visual C++ правой кнопкой мыши и выберите пункт Изменить <имя_проекта>.vcxproj.
VCXPROJ-файл будет открыт в редакторе.
В разделе PropertyGroup с меткой "Globals" задайте для параметра TargetFrameworkVersion значение 3.5.
<PropertyGroup Label="Globals"> <TargetName>DefaultTest</TargetName> <ProjectTypes>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}</ProjectTypes> <ProjectGUID>{CE16D77A-E364-4ACD-948B-1EB6218B0EA3}</ProjectGUID> <TargetFrameworkVersion>3.5</TargetFrameworkVersion> <Keyword>ManagedCProj</Keyword> <RootNamespace>CPP_Test</RootNamespace> </PropertyGroup>
Сохраните и закройте VCXPROJ-файл.
В обозревателе решений щелкните созданный тестовый проект Visual C++ правой кнопкой мыши и выберите пункт Перезагрузить проект.
Возможные дополнительные шаги по изменению требуемой версии тестовых проектов на .NET Framework 3.5
Если перед установкой пакета обновления 1 (SP1) для Visual Studio 2010 был изменен файл devenv.exe.config, то необходимо выполнить некоторые дополнительные действия, чтобы сделать возможным выбор в качестве требуемой версии .NET Framework 3.5. При установке пакета обновления 1 (SP1) файл конфигурации не перезаписывается, если обнаружено, что этот файл был изменен.
Примечание
Файл devenv.exe.config может быть изменен при установке подключаемых модулей или надстроек для Visual Studio.
Если файл devenv.exe.config был изменен до установки пакета обновления 1 (SP1) и не был исправлен, в следующих ситуациях появляется сообщение об ошибке:
предпринимается попытка изменить требуемую версию .NET Framework для тестового проекта на .NET Framework 3.5 с помощью Visual Studio 2010 с пакетом обновления 1 (SP1);
предпринимается попытка открыть текстовый проект, требуемая версия .NET Framework которого уже была изменена.
Чтобы устранить эту проблему, воспользуйтесь следующей процедурой.
Добавление в файл конфигурации недостающих элементов XML
Закройте все экземпляры Visual Studio 2010.
Откройте командную строку Visual Studio 2010 от имени администратора.
Смените текущий каталог на "%programfiles%\MicrosoftVisual Studio 10.0\Common7\IDE" в случае использования 32-разрядной версии Windows или на "%programfiles(x86)%\MicrosoftVisual Studio 10.0\Common7\IDE" в случае использования 64-разрядной версии Windows.
Откройте файл devenv.exe.config в текстовом редакторе, например в notepad.exe.
Добавьте в узел <assemblyBinding> следующие записи:
<dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.UnitTestFramework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Adapter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.VisualStudio.QualityTools.Tips.UnitTest.Tip" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="10.1.0.0" newVersion="10.0.0.0"/> </dependentAssembly>
Добавьте в узел <configuration> следующую запись:
<appSettings> <add key="TestProjectRetargetTo35Allowed" value="true" /> </appSettings>
Сохраните файл devenv.exe.config.
Перезапустите Visual Studio 2010.
Должна появиться возможность изменения требуемой версии тестовых проектов на .NET Framework 3.5.
См. также
Основные понятия
Создание и запуск модульных тестов для существующего кода