Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте Microsoft.Testing.Platform в режиме VSTest
В этой статье объясняется интеграция dotnet test
для Microsoft.Testing.Platform, которая предоставляется Microsoft.Testing.Platform.MSBuild при запуске в режиме VSTest dotnet test
.
Перед погружением в эту статью рекомендуется сначала прочитать тестирование с помощью dotnet test, что объясняет два режима dotnet test
(режимы VSTest и MTP).
По умолчанию dotnet test
для запуска тестов используется VSTest. Чтобы включить поддержку Microsoft.Testing.Platform
в dotnet test
, у вас есть два варианта:
- Используйте
dotnet test
в режиме VSTest и укажите<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
свойство MSBuild в файле проекта. - Используйте
dotnet test
в режиме MTP для более полной поддержки MTP вdotnet test
, начиная только с пакета SDK для .NET 10.
Оба варианта подробно описаны в статье о тестировании с помощью dotnet test.
Это важно
Остальная часть этой статьи относится исключительно к режиму dotnet test
VSTest.
Осторожность
Начиная с пакета SDK для .NET 10, рекомендуется не использовать режим dotnet test
VSTest при работе с Microsoft.Testing.Platform.
Показать сбой для каждого теста
По умолчанию тестовые сбои суммируются в файл .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>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
</PropertyGroup>
<!-- ... -->
</Project>
Показать полные выходные данные платформы
По умолчанию все выходные данные консоли, которые записываются в базовый исполняемый файл теста, фиксируются и скрыты от пользователя. Сюда входят баннер, сведения о версии и отформатированные сведения о тесте.
Чтобы отобразить эти сведения вместе с выходными данными MSBuild, используйте <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
.
Этот параметр не влияет на то, как платформа тестирования записывает выходные данные пользователей, написанные 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>
<OutputType>Exe</OutputType>
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!-- Add this to your project file. -->
<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>
</PropertyGroup>
<!-- ... -->
</Project>
Это важно
Все приведенные выше примеры добавляют свойства, такие как EnableMSTestRunner
, TestingPlatformDotnetTestSupport
и TestingPlatformCaptureOutput
в csproj-файле. Однако настоятельно рекомендуется задать эти свойства в Directory.Build.props
. Таким образом, вам не нужно добавлять его в каждый файл тестового проекта, и вы не рискуете создать новую ситуацию с проектом, который не задает эти свойства, и в итоге получить решение, где некоторые проекты являются VSTest, а другие — Microsoft.Testing.Platform, что может не работать правильно и является неподдерживаемым сценарием.