Partilhar via


Utilize a Microsoft.Testing.Platform no modo VSTest de dotnet test

Este artigo explica a integração de dotnet test com a Microsoft.Testing.Platform, fornecida pela Microsoft.Testing.Platform.MSBuild quando executada no modo VSTest de dotnet test.

Antes de mergulhar neste artigo, recomenda-se que primeiro leia Testes com dotnet test, que explica os dois modos de dotnet test (modos VSTest e MTP).

Por padrão, dotnet test usa VSTest para executar testes. Para habilitar o suporte para Microsoft.Testing.Platform em dotnet test, você tem duas opções:

  1. Use dotnet test no modo VSTest e especifique <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> a propriedade MSBuild em seu arquivo de projeto.
  2. Use dotnet test no modo MTP para obter mais suporte nativo de MTP no dotnet test, que só é suportado a partir do SDK do .NET 10.

Ambas as opções são explicadas em detalhes no artigo Teste com dotnet .

Importante

Esta parte do artigo é específica para o modo VSTest do dotnet test.

Atenção

A partir do .NET 10 SDK, é recomendável não usar o modo VSTest ao ser executado com Microsoft.Testing.Platform.

Mostrar falha por teste

Por padrão, as falhas de teste são resumidas em um arquivo .log e uma única falha por projeto de teste é relatada ao MSBuild.

Para mostrar erros por teste com falha, especifique -p:TestingPlatformShowTestsFailure=true na linha de comando ou adicione a propriedade <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> ao arquivo de projeto.

Na linha de comando:

dotnet test -p:TestingPlatformShowTestsFailure=true

Ou no arquivo do projeto:

<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>

Mostrar saída completa da plataforma

Por padrão, toda a saída do console que o executável de teste subjacente grava é capturada e oculta do usuário. Isso inclui o banner, informações de versão e informações de teste formatadas.

Para mostrar essas informações junto com a saída do MSBuild, use <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>.

Esta opção não afeta a forma como o framework de teste captura a saída do utilizador escrita por Console.WriteLine ou outras maneiras semelhantes de escrever para o console.

Na linha de comando:

dotnet test -p:TestingPlatformCaptureOutput=false

Ou no arquivo do projeto:

<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>

Importante

Todos os exemplos acima adicionam propriedades como EnableMSTestRunner, TestingPlatformDotnetTestSupporte TestingPlatformCaptureOutput no arquivo csproj. No entanto, é altamente recomendável que você defina essas propriedades em Directory.Build.props. Dessa forma, você não precisa adicioná-lo a todos os arquivos de projeto de teste e não corre o risco de introduzir um novo projeto que não define essas propriedades e acaba com uma solução em que alguns projetos são VSTest enquanto outros são Microsoft.Testing.Platform, que pode não funcionar corretamente e é um cenário sem suporte.