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.
Em .NET, uma estrutura de teste e uma plataforma de teste são componentes diferentes que trabalham juntos para descobrir e executar testes.
- A estrutura de teste define o modelo de teste no qual você escreve, como MSTest, NUnit, xUnit.net ou TUnit.
- A plataforma de teste executa testes, integra-se com IDEs e CLI e fornece pontos de extensão compartilhados.
Você pode escolher entre duas plataformas de teste:
- VSTest
- Microsoft.Testing.Platform (MTP)
Dica
Para a configuração mais simples, escolha uma plataforma para o repositório e configure projetos de teste, CI e ferramentas de forma consistente para essa plataforma. Não misture projetos de teste de .NET baseados em VSTest e microsoft.Testing.Platform na mesma solução ou execute a configuração porque esse cenário não tem suporte. Se você também executar testes não .NET que dependem do VSTest (por exemplo, testes C++ ou JavaScript), execute esses testes em configurações separadas de seus testes de .NET baseados em MTP.
Como escolher sua plataforma
Use os cenários a seguir para escolher rapidamente.
| Caso de uso | Escolher | Por que |
|---|---|---|
| Você precisa de cenários de execução de teste de AOT nativo ou de redução. | Microsoft.Testing.Platform | O MTP dá suporte a esses cenários de implantação modernos, enquanto o VSTest não. |
| Você está criando projetos empacotados de teste do WinUI ou UWP. | VSTest | Atualmente, esses tipos de projeto não têm suporte do MTP. |
| Você precisa misturar testes .NET e adaptadores de teste não .NET (por exemplo, adaptadores JavaScript ou C++). | VSTest | O VSTest dá suporte a cenários de adaptador de linguagem mista, enquanto o MTP é .NET específico. |
Você quer que os projetos de teste funcionem como executáveis regulares (dotnet run, execução dotnet watch executável direta e fluxos F5 do projeto de inicialização). |
Microsoft.Testing.Platform | O MTP é executável primeiro, portanto, os aplicativos de teste são executados como aplicativos .NET padrão em fluxos de trabalho locais e de CI. |
| Você depende de integrações estabelecidas há muito tempo em ferramentas existentes. | VSTest | O VSTest tem o registro de compatibilidade mais longo em produtos, tarefas e pipelines existentes. O suporte a MTP está crescendo no ecossistema, mas algumas integrações podem ficar atrás do VSTest. |
| Você prefere padrões estritos e comportamento explícito. | Microsoft.Testing.Platform | O MTP favorece a execução determinística com um modelo de extensão leve e optativo e registro em tempo de compilação. Por exemplo, ele pode falhar quando nenhum teste é executado, reduzir a variabilidade dependente do ambiente e permitir que você desabilite extensões individuais por ambiente. |
| Você prefere padrões padrão mais suaves e amplos que sejam compatíveis com versões anteriores. | VSTest | Ambas as plataformas se preocupam com a compatibilidade com versões anteriores. O VSTest prioriza os padrões orientados à compatibilidade para cadeias de ferramentas diversas e existentes, enquanto o MTP fornece compatibilidade com versões anteriores em seu próprio modelo de extensão. |
| Você está bloqueado por um problema ou comportamento específico do VSTest no fluxo de trabalho atual. | Microsoft.Testing.Platform | Em muitos cenários, o mesmo fluxo de trabalho não é afetado quando movido para MTP devido a diferenças no modelo de runtime e na arquitetura de extensão. |
Se o caso de uso específico não estiver listado, ambas as plataformas serão opções válidas.
Integração e suporte a ferramentas
| Área de integração | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Integração de IDE | Integração madura entre Visual Studio e outras ferramentas que dependem do protocolo VSTest e adaptadores. | O suporte está presente em cenários de Visual Studio e Visual Studio Code, com a integração contínua em andamento em partes do ecossistema. |
| CI e ferramentas externas | Suporte abrangente em ferramentas e tarefas Microsoft e não-Microsoft estabelecidas. Em Azure DevOps, você pode usar a tarefa VSTest (VSTest@3, vstest.console) ou a tarefa .NET (DotNetCoreCLI@2, dotnet test). |
Funciona em CI e fluxos de trabalho de .NET modernos, mas algumas integrações de terceiros ainda podem ficar atrás do VSTest. Em Azure DevOps, use a tarefa .NET (DotNetCoreCLI@2, dotnet test). |
dotnet test Comportamento |
Modo VSTest padrão. Os argumentos e o comportamento do VSTest se aplicam. | O modo MTP nativo está disponível em .NET 10 SDK e posteriores. |
Para obter detalhes completos sobre dotnet test modos e argumentos, consulte Testando com dotnet test.
Comece com a estrutura de teste
Se você escolher VSTest
- MSTest: executar testes com MSTest
- NUnit: NUnit e Microsoft.Testing.Platform
- xUnit.net: Introdução ao xUnit.net
- TUnit: não há suporte no VSTest. Use Microsoft.Testing.Platform.
Se você escolher Microsoft.Testing.Platform
- MSTest: executar testes com MSTest
- NUnit: suporte para Microsoft.Testing.Platform no NUnit (executor NUnit)
- xUnit.net: Plataforma de Teste da Microsoft (xUnit.net v3)
- TUnit: documentação do TUnit
Próximas etapas
- Conheça os conceitos do MTP: Visão geral de Microsoft.Testing.Platform
- Entender as opções do VSTest: opções do VSTest
- Migrar do VSTest: migrar do VSTest para Microsoft.Testing.Platform
- Adicionar funcionalidades: recursos do Microsoft.Testing.Platform