Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
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"