MSTest.Sdk — это пакет SDK проекта MSBuild для создания приложений MSTest. Можно создать приложение MSTest без этого пакета SDK, однако пакет SDK MSTest:
Ориентировано на предоставление первоклассного опыта тестирования с помощью MSTest.
/3.8.3 приведен в качестве примера и может быть заменена любой более новой версией.
Чтобы упростить обработку версий, рекомендуется задать версию пакета SDK на уровне решения с помощью файла global.json . Например, файл проекта будет выглядеть следующим образом:
При выполнении build проекта все необходимые компоненты восстанавливаются и устанавливаются с помощью стандартного рабочего процесса NuGet, заданного проектом.
Вам не нужно ничего другого для сборки и выполнения тестов, и вы можете использовать те же средства (например, dotnet test Visual Studio), которые используются классическим проектом MSTest.
Важно!
Переключившись на MSTest.Sdk, вы выбираете использование средства запуска MSTest (включая Microsoft.Testing.Platform для MSTest), в том числе с помощью dotnet test. Это требует изменения вызовов CI и локальных вызовов CLI, а также влияет на доступные записи в .runsettings. Вы можете использовать MSTest.Sdk и по-прежнему сохранять старые интеграции и средства, переключив вместо этого раннер.
По умолчанию наборы EnableMSTestRunner MSTest.Sdk и TestingPlatformDotnetTestSupport значение true. Дополнительные сведения о тесте dotnet и его различных режимах запуска Microsoft.Testing.Platform см. в разделе "Тестирование с помощью dotnet test".
Выберите бегуна
По умолчанию пакет SDK MSTest использует Microsoft.Testing.Platform, но можно перейти на VSTest, добавив свойство <UseVSTest>true</UseVSTest>.
Расширьте Microsoft.Testing.Platform
Вы можете настроить Microsoft.Testing.Platform опыт с помощью набора расширений пакетов NuGet. Чтобы упростить и улучшить этот интерфейс, пакет SDK MSTest представляет две функции:
Расширения можно включить и отключить с помощью свойств MSBuild с шаблоном Enable[NugetPackageNameWithoutDots].
Например, чтобы активировать расширение для аварийных дампов (пакет NuGet Microsoft.Testing.Extensions.CrashDump), можно задать следующее свойство EnableMicrosoftTestingExtensionsCrashDumptrue:
Список всех доступных расширений см. в разделе "Расширения Microsoft.Testing.Platform".
Предупреждение
Важно проверить условия лицензирования для каждого расширения, так как они могут отличаться.
Включенные и отключенные расширения объединяются с дополнениями, предоставляемыми выбранным профилем дополнений.
Этот шаблон свойства можно использовать для включения дополнительного расширения поверх неявного профиля Default (как показано в предыдущем примере CrashDumpExtension).
Вы также можете отключить расширение, которое поступает из выбранного профиля. Например, отключите MS Code Coverage расширение, задав :<EnableMicrosoftTestingExtensionsCodeCoverage>false</EnableMicrosoftTestingExtensionsCodeCoverage>
Помимо выбора двигателей и расширений, специфичных для них, MSTest.Sdk также предоставляет дополнительные функции, упрощающие и повышающие возможности вашего тестирования.
Тестирование с помощью .NET Aspire
.NET Aspire — это облачный стек с жёстко заданной структурой для создания наблюдаемых, готовых к эксплуатации и распределённых приложений. .NET Aspire предоставляется через коллекцию пакетов NuGet, которые обрабатывают конкретные облачные задачи. Дополнительные сведения см. в документации по .NET Aspire.
Примечание
Эта функция доступна из MSTest.Sdk 3.4.0
Присвоив свойству EnableAspireTesting значение true, можно получить все необходимые зависимости и директивы по умолчанию using для тестирования с помощью Aspire и MSTest.
Playwright обеспечивает надежное комплексное тестирование для современных веб-приложений. Официальную документацию Playwright см. для получения дополнительной информации.
Примечание
Эта функция доступна из MSTest.Sdk 3.4.0
Установив свойство EnablePlaywright в true, вы можете обеспечить все необходимые зависимости и директивы по умолчанию using для тестирования с помощью Playwright и MSTest.
Рассмотрим следующие шаги, необходимые для миграции в пакет SDK MSTest.
Обновление проекта
При переносе существующего тестового проекта MSTest в пакет SDK MSTest сначала замените Sdk="Microsoft.NET.Sdk" запись в верхней части тестового проекта на Sdk="MSTest.Sdk"
Наконец, на основе используемого профиля расширений можно также удалить некоторые Microsoft.Testing.Extensions.* пакеты.
Обновление CI
После обновления проектов, если вы используете Microsoft.Testing.Platform (по умолчанию) и полагаетесь на dotnet test для проведения тестов, необходимо обновить конфигурацию CI. Дополнительные сведения и руководство по пониманию всех необходимых изменений см. в статье dotnet test integration.
Если вы используете режим dotnet testVSTest, вот пример обновления при использовании задачи DotNetCoreCLI в Azure DevOps.
Пакеты SDK для NuGet, предоставляемые MSBuild (включая MSTest.Sdk), имеют ограниченную поддержку инструментов при обновлении его версии, что означает, что обычное обновление NuGet и пользовательский интерфейс Visual Studio для управления пакетами NuGet не работает должным образом. Более подробную информацию можно найти по этой проблеме: NuGet#13127.
Примечание
Это ограничение не является специфическим для пакета SDK MSTest, а касается любого пакета SDK для MSBuild, предоставляемого NuGet.
Dependabot будет обрабатывать обновление версии в файле global.json, но вам потребуется вручную обновить версию в файле проекта.
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о
.NET
.NET
— это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Начните тестирование приложений C# с помощью средств тестирования Visual Studio. Научитесь создавать тесты, пользоваться обозревателем тестов, создавать наборы тестов, а также применять принцип "ошибка-успех-рефакторинг" в создании кода.