Compartilhar via


Use Microsoft.Testing.Platform com dotnet test

Este artigo descreve como usar dotnet test para executar testes ao usar Microsoft.Testing.Platform e as várias opções disponíveis para configurar a saída do MSBuild produzida ao executar testes por meio do Microsoft.Testing.Platform.

Este artigo mostra como usar dotnet test para executar todos os testes em uma solução (*.sln) que usa Microsoft.Testing.Platform.

dotnet test integração

O comando de dotnet test é uma maneira de executar testes de soluções, projetos ou assemblies já criados. O Microsoft.Testing.Platform se conecta a essa infraestrutura para fornecer uma maneira unificada de executar testes, especialmente ao migrar do VSTest para o Microsoft.Testing.Platform.

Integração dotnet test – modo VSTest

Microsoft.Testing.Platform fornece uma camada de compatibilidade (Ponte VSTest) para trabalhar com dotnet test perfeitamente.

Os testes podem ser executados ao se executar:

dotnet test

Essa camada executa o teste por meio do VSTest e integra-se a ele no nível do Adaptador de Estrutura de Teste do VSTest.

dotnet test - Modo Microsoft.Testing.Platform

Por padrão, o VSTest é usado para executar testes Microsoft.Testing.Platform. Você pode habilitar um Microsoft.Testing.Platform completo especificando a configuração no <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> no seu arquivo de projeto. Essa configuração desabilita o VSTest e, graças à dependência transitiva do pacote NuGet Microsoft.Testing.Platform.MSBuild, executa diretamente todos os projetos de teste capacitados de Microsoft.Testing.Platform na sua solução. Ele funciona perfeitamente se você passar diretamente um projeto de teste do 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>

Nesse modo, você pode fornecer parâmetros extras que são usados para chamar o aplicativo de teste de uma das seguintes maneiras:

  • A partir da Microsoft.Testing.Platform versão 1.4 (incluída no MSTest versão 3.6), você pode ter opções após o traço duplo -- na linha de comando:

    dotnet test -- --minimum-expected-tests 10
    
  • Usando a TestingPlatformCommandLineArguments propriedade do MSBuild na linha de comando:

    dotnet test -p:TestingPlatformCommandLineArguments="--minimum-expected-tests 10"
    

    Ou no arquivo de projeto:

    <PropertyGroup>
      ...
      <TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
    </PropertyGroup>
    

Opções adicionais do MSBuild

A integração do MSBuild fornece opções que podem ser especificadas no arquivo do projeto ou por meio de propriedades globais na linha de comando, como -p:TestingPlatformShowTestsFailure=true.

Estas são as opções disponíveis:

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 os erros por teste com falha, especifique -p:TestingPlatformShowTestsFailure=true na linha de comando ou adicione a <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> propriedade ao arquivo de projeto.

Na linha de comando:

dotnet test -p:TestingPlatformShowTestsFailure=true

Ou no arquivo de projeto:

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

Mostrar saída completa da plataforma

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

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

Essa opção não afeta como a estrutura de teste captura a saída do usuário escrita por Console.WriteLine ou outras maneiras semelhantes de escrever no console.

Na linha de comando:

dotnet test -p:TestingPlatformCaptureOutput=false

Ou no arquivo de projeto:

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