Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Usar Microsoft.Testing.Platform no modo VSTest de
Este artigo explica a integração do dotnet test
para Microsoft.Testing.Platform, que é fornecido pelo Microsoft.Testing.Platform.MSBuild quando executado no modo VSTest de dotnet test
.
Antes de se aprofundar neste artigo, é recomendável ler primeiro Testando com dotnet test, que explica os dois modos dotnet test
(modos VSTest e MTP).
Por padrão, dotnet test
usa o VSTest para executar testes. Para habilitar o suporte de Microsoft.Testing.Platform
em dotnet test
, você tem duas opções:
- Use
dotnet test
no modo VSTest e especifique<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
a propriedade MSBuild no arquivo de projeto. - Use
dotnet test
no modo MTP para um suporte mais nativo do MTP emdotnet test
, que é suportado apenas a partir do SDK do .NET 10.
Ambas as opções são explicadas detalhadamente no artigo Testando com dotnet test.
Importante
O restante deste artigo é específico para o modo VSTest de dotnet test
.
Cuidado
A partir do .NET 10 SDK, recomenda-se evitar o uso do modo VSTest de dotnet test
ao executar com o 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 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>
<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 o banner, 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>
<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
, TestingPlatformDotnetTestSupport
e 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.