Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Microsoft.Testing.Platform é uma alternativa leve e portátil ao VSTest para executar testes em linha de comando, em pipelines de integração contínua (CI), no Gerenciador de Testes do Visual Studio e no Visual Studio Code. Neste artigo, você aprenderá as principais diferenças entre Microsoft.Testing.Platform e VSTest.
Diferenças na execução do teste
Os testes são executados de maneiras diferentes, dependendo do corredor.
Executar testes VSTest
O VSTest é fornecido com o Visual Studio, o SDK do .NET e como uma ferramenta autônoma no pacote Microsoft.TestPlatform NuGet. VSTest usa um executável runner para executar testes, chamado vstest.console.exe, que pode ser usado diretamente ou através dotnet test.
Executar testes Microsoft.Testing.Platform
Microsoft.Testing.Platform é incorporado diretamente em seu projeto de teste e não envia nenhum executável extra. Quando você executa o executável do projeto, os testes são executados. Para obter mais informações sobre como executar testes Microsoft.Testing.Platform, consulte Visão geral de Microsoft.Testing.Platform: Executar e depurar testes.
Namespaces e pacotes NuGet
Para se familiarizar com Microsoft.Testing.Platform e VSTest, é útil entender os namespaces e pacotes NuGet usados por cada um.
Namespaces VSTest
VSTest é uma coleção de ferramentas de teste que também são conhecidas como a plataforma de teste . O código-fonte VSTest é de código aberto e está disponível no repositório microsoft/vstest GitHub. O código usa o namespace Microsoft.TestPlatform.*.
O VSTest é extensível e tipos comuns são colocados em pacote Microsoft.TestPlatform.ObjectModel NuGet.
Namespaces Microsoft.Testing.Platform
A Microsoft.Testing.Platform baseia-se no pacote NuGet Microsoft.Testing.Platform e noutras bibliotecas no espaço de nomes Microsoft.Testing.*. Como o VSTest, o Microsoft.Testing.Platform é de código aberto e tem um repositório microsoft/testfx GitHub.
Protocolo de comunicação
Observação
O Visual Studio Test Explorer suporta o protocolo Microsoft.Testing.Platform desde 17.12 em diante. Se você executar/depurar seus testes usando versões anteriores do Visual Studio, o Test Explorer usará vstest.console.exe e o protocolo antigo para executar esses testes.
Microsoft.Testing.Platform usa um protocolo baseado em JSON-RPC para se comunicar entre o Visual Studio e o processo do executor de teste. O protocolo está documentado no repositório MSTest GitHub.
O VSTest também usa um protocolo de comunicação baseado em JSON, mas não é baseado em JSON-RPC.
Desativando o novo protocolo
Para desabilitar o uso do novo protocolo no Test Explorer, você pode editar seu projeto para adicionar a seguinte propriedade: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.
Você também pode ir para as opções de recursos de visualização no Visual Studio e desmarcar a opção "Usar o modo de servidor de plataforma de teste".
Executáveis
O VSTest distribui vários executáveis, incluindo vstest.console.exe, testhost.exee datacollector.exe. No entanto, Microsoft.Testing.Platform é incorporado diretamente em seu projeto de teste e não envia nenhum outro executável. O executável para o qual seu projeto de teste compila é usado para hospedar todas as ferramentas de teste e executar todas as tarefas necessárias para executar testes.