Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте 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, что может не работать правильно и является неподдерживаемым сценарием.