Partilhar via


Use Microsoft.Testing.Platform com dotnet test

Este artigo descreve como usar dotnet test para executar testes ao usar Microsoft.Testing.Platformo , e as várias opções disponíveis para configurar a saída 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.Platformo .

dotnet test Integração

O comando dotnet test é uma maneira de executar testes de soluções, projetos ou assemblies já construídos. 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.

dotnet test integração - modo VSTest

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

Os testes podem ser executados executando:

dotnet test

Esta camada executa o teste através do VSTest e integra-se com ele no nível do VSTest Test Framework Adapter.

dotnet test - Modo Microsoft.Testing.Platform

Por padrão, o VSTest é usado para executar Microsoft.Testing.Platform testes. Você pode habilitar um completo Microsoft.Testing.Platform especificando a <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> configuração em 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 Microsoft.Testing.Platform projetos de teste habilitados em sua solução. Ele funciona perfeitamente se você passar em um projeto de teste direto 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 adicionar opções após o traço -- duplo na linha de comando:

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

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

    Ou no arquivo do 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 de 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 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 do 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 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>.

Essa opção não afeta como a estrutura de teste captura a saída do usuário gravada por Console.WriteLine ou outras maneiras semelhantes de gravar no 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>
    <IsTestProject>true</IsTestProject>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>

  </PropertyGroup>

  <!-- ... -->

</Project>