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