Использование Microsoft.Testing.Platform с dotnet test
В этой статье описывается, как выполнять dotnet test
тесты при использовании Microsoft.Testing.Platform
, а также различные параметры, доступные для настройки выходных данных MSBuild, созданных при выполнении тестов с помощью Microsoft.Testing.Platform.
В этой статье показано, как выполнять dotnet test
все тесты в решении (*.sln), который использует Microsoft.Testing.Platform
.
dotnet test
интеграция
Команда dotnet test — это способ выполнения тестов из решений, проектов или уже созданных сборок. Microsoft.Testing.Platform подключается к этой инфраструктуре, чтобы обеспечить единый способ выполнения тестов, особенно при миграции из VSTest в Microsoft.Testing.Platform
.
dotnet test
интеграция — режим VSTest
Microsoft.Testing.Platform
предоставляет уровень совместимости (VSTest Bridge) для эффективной работыdotnet test
.
Тесты можно запустить, выполнив следующие действия:
dotnet test
Этот уровень выполняет тестирование с помощью VSTest и интегрируется с ним на уровне адаптера VSTest Test Framework.
dotnet test
— Режим Microsoft.Testing.Platform
По умолчанию VSTest используется для выполнения Microsoft.Testing.Platform
тестов. Вы можете включить полный Microsoft.Testing.Platform
параметр, указав <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
параметр в файле проекта. Этот параметр отключает VSTest и благодаря транзитивной зависимости к пакету NuGet Microsoft.Testing.Platform.MSBuild напрямую запускает все Microsoft.Testing.Platform
расширенные тестовые проекты в решении. Он работает легко, если вы передаете прямой Microsoft.Testing.Platform
тестовый проект.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<!-- Add this to your project file. -->
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
</PropertyGroup>
<!-- ... -->
</Project>
В этом режиме можно указать дополнительные параметры, которые используются для вызова тестового приложения одним из следующих способов:
Начиная с версии 1.4 (включенной в
Microsoft.Testing.Platform
MSTest версии 3.6), можно добавить параметры после двойного дефиса--
в командной строке:dotnet test -- --minimum-expected-tests 10
Используя
TestingPlatformCommandLineArguments
свойство MSBuild в командной строке:dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
Или в файле проекта:
<PropertyGroup> ... <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments> </PropertyGroup>
Дополнительные параметры MSBuild
Интеграция MSBuild предоставляет параметры, которые можно указать в файле проекта или через глобальные свойства в командной строке, например -p:TestingPlatformShowTestsFailure=true
.
Это доступные варианты:
Отображение сбоя на тест
По умолчанию тестовые сбои суммируются в файл .log , а в MSBuild сообщается один сбой для каждого тестового проекта.
Чтобы отобразить ошибки для каждого неудачного теста, укажите -p:TestingPlatformShowTestsFailure=true
в командной строке или добавьте <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
свойство в файл проекта.
В командной строке:
dotnet test -p:TestingPlatformShowTestsFailure=true
Или в файле проекта:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Показать полные выходные данные платформы
По умолчанию все выходные данные консоли, которые записываются в базовый исполняемый файл теста, фиксируются и скрыты от пользователя. Сюда входят баннер, сведения о версии и отформатированные сведения о тесте.
Чтобы отобразить эти сведения вместе с выходными<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
данными MSBuild.
Этот параметр не влияет на то, как платформа тестирования записывает выходные данные пользователей, написанные Console.WriteLine
или другими аналогичными способами записи в консоль.
В командной строке:
dotnet test -p:TestingPlatformCaptureOutput=false
Или в файле проекта:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>