Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете обновить тестовый проект, перенаправив версию MSTest, указанную в .csproj, с версии MSTestV1 на версию MSTestV2. Не все функции в MSTestV1 были перенесены в MSTestV2, поэтому некоторые изменения могут потребоваться для устранения ошибок. Ознакомьтесь с функциями MSTestV1, которые не поддерживаются в MSTestV2, чтобы понять, какие функции больше не работают. Некоторые из этих функций могут быть удалены из тестов.
Удалите ссылку на сборку Microsoft.VisualStudio.QualityTools.UnitTestFramework из проекта модульного теста.
Добавьте ссылки на пакет NuGet в MSTestV2, включая пакеты MSTest.TestFramework и MSTest.TestAdapter на nuget.org. Пакеты можно установить в консоли диспетчера пакетов NuGet с помощью следующих команд:
PM> Install-Package MSTest.TestAdapter -Version 3.1.1 PM> Install-Package MSTest.TestFramework -Version 3.1.1
Пример csproj старого стиля
Пример .csproj для MSTestV1:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
Пример .csproj теперь предназначен для MSTestV2:
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
Заметка
Тестовые проекты, являющиеся тестами пользовательского интерфейса Coded UI или нагрузочными тестами для веба, несовместимы с MSTestV2. Эти типы проектов устарели. Подробнее о снятии поддержки кодированных тестов пользовательского интерфейса и снятии поддержки веб-нагрузочных тестов .
csproj в формате SDK (.NET Core и .NET 5 или более поздних версий)
Если ваш файл .csproj является новым форматом SDK .csproj, вы, скорее всего, уже используете MSTestV2. Пакеты NuGet для MSTestV2 можно найти и адаптер MSTestV2 в NuGet.
Пример:
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
</ItemGroup>
Почему обновление до MSTestV2?
В 2016 году мы выпустили следующий шаг в развитии платформы MSTest с помощью MSTestV2. Дополнительные сведения об этом изменении см. в записи блога.
MSTestV2 проще получить и обновить, так как он поставляется как пакет NuGet .
Единая поддержка платформы приложений — MSTestV2 — это конвергентная реализация, которая обеспечивает единую поддержку платформы приложений в .NET Framework, .NET Core, ASP.NET Core и UWP. Читать далее.
Реализация полностью кроссплатформенная (Windows, Linux, Mac). Читать далее.
MSTestV2 поддерживает назначение .NET Framework 4.5.0 и более поздних версий, .NET Core 1.0 и более поздних версий (универсальные приложения Windows 10+), ASP.NET Core 1.0 и более поздних версий, а также .NET 5 и более поздних версий.
Предоставляет унифицированный механизм расширения для конечного пользователя. Подробнее.
Обеспечивает единообразную
DataRow
поддержку для всех тестовых проектов на основе MSTest. Читать далее.Включает размещение атрибута
TestCategory
на уровне класса или сборки. Читайте дальше.Методы тестирования из базовых классов, определенных в другой сборке, теперь обнаруживаются и выполняются из производного класса Test. Это изменение приводит к согласованному поведению с производными типами классов тестов. Если это поведение не требуется по соображениям совместимости, его можно изменить обратно с помощью следующих параметров выполнения:
<RunSettings> <MSTest> <EnableBaseClassTestMethodsFromOtherAssemblies>false</EnableBaseClassTestMethodsFromOtherAssemblies> </MSTest> </RunSettings>
Обеспечивает более детальное управление параллельным выполнением с помощью параллельного выполнения сборки тестов. Эта функция позволяет выполнять тесты в сборке параллельно.
Метод
TestCleanup
наTestClass
вызывается, даже если соответствующий ему методTestInitialize
завершается ошибкой. Детали проблемы.Время, затраченное
AssemblyInitialize
иClassInitialize
, не учитывается в течение теста. Это изменение ограничивает их влияние на сбой теста из-за превышения времени ожидания.Тесты, которые не могут быть запущены, можно настроить как неудачные с помощью тега
MapNotRunnableToFailed
, который является частью узла адаптера в файле.runsettings
.<RunSettings> <MSTest> <MapNotRunnableToFailed>true</MapNotRunnableToFailed> </MSTest> </RunSettings>
Функции MSTestV1, которые не поддерживаются в MSTestV2
- Тесты не могут быть включены в "упорядоченный тест".
- Изменения в файле
.testsettings
:- Больше не может использоваться для настройки адаптера.
- Больше не поддерживает раздел
<LegacySettings>
, что означает, что его нельзя использовать для задания атрибутов. Например,DeploymentItem
. Используйте новый .runsettings-файл для конфигурации тестового запуска.
- Адаптер не поддерживает списки тестов, указанные как файл .vsmdi с тегами .
- Не поддерживаются типы закодированных тестов пользовательского интерфейса и веб-проекта производительности и нагрузочного теста. Узнайте больше о снятии с поддержки индивидуального теста пользовательского интерфейса и о снятии с поддержки теста веб-нагрузки .
- Связь с элементом тестового случая в TFS не поддерживается.