Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MSTest поддерживает выполнение тестов как с VSTest, так и с Microsoft.Testing.Platform (MTP). Поддержка MTP работает с помощью средства запуска MSTest, который может выполнять тесты во всех контекстах (например, конвейеры непрерывной интеграции (CI), CLI, обозреватель тестов Visual Studio и текстовый обозреватель VS Code. Средство выполнения MSTest внедрено непосредственно в тестовые проекты MSTest, и для выполнения тестов нет других зависимостей приложений, таких как vstest.console
или dotnet test
, необходимых для выполнения тестов. Однако вы по-прежнему можете выполнять тесты с помощью dotnet test
.
Средство запуска MSTest — это открытый исходный код и создается в библиотеке Microsoft.Testing.Platform
. Код Microsoft.Testing.Platform
можно найти в репозитории microsoft/testfx GitHub. Модуль выполнения тестов MSTest поставляется вместе с MSTest in 3.2.0
или более поздними версиями.
Включение Microsoft.Testing.Platform в проекте MSTest
Рекомендуется использовать пакет SDK MSTest , так как он значительно упрощает конфигурацию проекта и обновляет проект, и обеспечивает правильное выравнивание версий платформы (Microsoft.Testing.Platform) и его расширений.
При использовании MSTest SDK
по умолчанию вы решили использовать Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/3.8.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Кроме того, можно включить средство выполнения MSTest, добавив свойство EnableMSTestRunner
и установив OutputType
равным Exe
в файле проекта. Кроме того, необходимо убедиться, что вы используете версию MSTest 3.2.0
или более новую. Настоятельно рекомендуется обновить последнюю версию MSTest.
Рассмотрим следующий пример файла проекта:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable Microsoft.Testing.Platform, this is an opt-in feature -->
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!--
Displays error on console in addition to the log file. Note that this feature comes with a performance impact.
For more information, visit https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test#show-failure-per-test
-->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<!--
MSTest meta package is the recommended way to reference MSTest.
It's equivalent to referencing:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
MSTest.Analyzers
Starting with 3.8, it also includes:
Microsoft.Testing.Extensions.TrxReport
Microsoft.Testing.Extensions.CodeCoverage
-->
<PackageReference Include="MSTest" Version="3.8.0" />
<!--
Coverlet collector isn't compatible with Microsoft.Testing.Platform, you can
either switch to Microsoft CodeCoverage (as shown below),
or switch to be using coverlet global tool
https://github.com/coverlet-coverage/coverlet#net-global-tool-guide-suffers-from-possible-known-issue
-->
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="17.10.1" />
</ItemGroup>
</Project>
Совет
Чтобы убедиться, что все тестовые проекты в решении используют средство выполнения MSTest, задайте свойства EnableMSTestRunner
и TestingPlatformDotnetTestSupport
в файле Directory.Build.props вместо отдельных файлов проекта.
Конфигурации и фильтры
.runsettings
Microsoft.Testing.Platform поддерживает параметры запуска через параметр --settings
командной строки. Полный список поддерживаемых записей MSTest см. в разделе "Настройка MSTest: Runsettings". В следующих командах показаны различные примеры использования.
Использование dotnet run
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Использование dotnet exec
dotnet exec Contoso.MyTests.dll --settings config.runsettings
–или–
dotnet Contoso.MyTests.dll --settings config.runsettings
Использование исполняемого файла:
Contoso.MyTests.exe --settings config.runsettings
Фильтр тестов
Вы можете легко предоставить фильтр тестов с помощью параметра --filter
командной строки. В следующих командах показаны некоторые примеры.
Использование dotnet run
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Использование dotnet exec
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
–или–
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Использование исполняемого файла:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"