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.
Microsoft.Testing.Platform é uma alternativa leve e portátil ao VSTest para executar testes na 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 executor.
Executar testes com o VSTest
O VSTest é fornecido com o Visual Studio, o SDK do .NET e como uma ferramenta autônoma no pacote NuGet Microsoft.Testing.Platform. O VSTest usa um executável do executor para executar testes, chamado vstest.console.exe, que pode ser usado diretamente ou por meio de dotnet test.
Executar testes do Microsoft.Testing.Platform
O Microsoft.Testing.Platform é inserido diretamente em seu projeto de teste e não envia nenhum executável extra. Quando você executa o executável do projeto, seus testes são executados. Para obter mais informações sobre como executar testes da Microsoft.Testing.Platform, confira Visão geral da Microsoft.Testing.Platform: executar e depurar testes.
Namespaces e pacotes NuGet
Para se familiarizar com o Microsoft.Testing.Platform e o VSTest, é útil entender os namespaces e os pacotes NuGet usados por cada um.
Namespaces do VSTest
O VSTest é uma coleção de ferramentas de teste, que também são conhecidas como Plataforma de Teste. O código-fonte do VSTest é de código aberto e está disponível no repositório GitHub microsoft/vstest. O código usa o namespace Microsoft.TestPlatform.*.
O VSTest é extensível e tipos comuns são colocados no pacote NuGet Microsoft.TestPlatform.ObjectModel.
Namespaces do Microsoft.Testing.Platform
A Microsoft.Testing.Platform baseia-se no pacote NuGet Microsoft.Testing.Platform e em outras bibliotecas no namespace Microsoft.Testing.*. Como o VSTest, o Microsoft.Testing.Platform é de código aberto e tem um repositório GitHub microsoft/testfx.
Protocolo de comunicação
Observação
O Gerenciador de Testes do Visual Studio dá suporte ao protocolo Microsoft.Testing.Platform desde 17.12 em diante. Se você executar/depurar seus testes usando versões anteriores do Visual Studio, o Gerenciador de Testes usará vstest.console.exe e o protocolo antigo para executar esses testes.
O Microsoft.Testing.Platform usa um protocolo baseado em JSON-RPC para se comunicar entre o Visual Studio e o processo de executor de teste. O protocolo está documentado no repositório do GitHub do MSTest.
O VSTest também usa um protocolo de comunicação baseado em JSON, mas não é baseado em JSON-RPC.
Desabilitando o novo protocolo
Para desabilitar o uso do novo protocolo no Gerenciador de Testes, você pode editar seu projeto para adicionar a seguinte propriedade: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.
Você também pode acessar as opções de Recursos de Visualização no Visual Studio e desmarcar a opção "Usar o modo de servidor da plataforma de teste".
Executáveis
O VSTest envia vários executáveis, notadamente vstest.console.exe, testhost.exe e datacollector.exe. No entanto, Microsoft.Testing.Platform é inserido diretamente em seu projeto de teste e não envia nenhum outro executável. O executável para o qual seu projeto de teste é compilado é usado para hospedar todas as ferramentas de teste e realizar todas as tarefas necessárias para executar os testes.