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.
No .NET, um framework de testes e uma plataforma de testes são componentes diferentes que trabalham em conjunto para descobrir e executar testes.
- O framework de teste define o modelo de teste contra o qual escreves, 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 partilhados.
Pode escolher entre duas plataformas de teste:
- VSTest
- Microsoft.Testing.Platform (MTP)
Sugestão
Para a configuração mais simples, escolha uma plataforma para o seu repositório e configure projetos de teste, CI e ferramentas de forma consistente para essa plataforma. Não misture projetos de teste baseados em VSTest e .NET baseados em Microsoft.Testing.Platform na mesma solução nem execute uma configuração porque esse cenário não é suportado. Se também executares testes não .NET que dependem do VSTest (por exemplo, testes C++ ou JavaScript), executa esses testes em configurações separadas dos teus testes .NET baseados em MTP.
Como escolher a sua plataforma
Use os seguintes cenários para escolher rapidamente.
| Caso de utilização | Escolher | Porquê |
|---|---|---|
| Precisas de AOT nativo ou de cenários de execução de testes com redução. | Microsoft.Testing.Platform | O MTP suporta estes cenários modernos de implementação, enquanto o VSTest não. |
| Está a desenvolver projetos de teste WinUI ou UWP em pacotes. | VSTest | Estes tipos de projetos não são atualmente suportados pelo MTP. |
| É preciso misturar testes .NET com adaptadores de teste não .NET (por exemplo, adaptadores JavaScript ou C++). | VSTest | O VSTest suporta cenários adaptadores de línguas mistas, enquanto o MTP é específico para .NET. |
Pretende que os projetos de teste se comportem como executáveis normais (dotnet run, execução direta do executável, dotnet watch, e fluxos de inicialização do projeto F5). |
Microsoft.Testing.Platform | O MTP é executável primeiro, por isso as aplicações de teste correm como aplicações .NET padrão em fluxos de trabalho locais e CI. |
| Confia-se em integrações estabelecidas ao longo das ferramentas existentes. | VSTest | O VSTest tem o maior histórico de compatibilidade entre produtos, tarefas e pipelines existentes. O suporte ao MTP está a crescer no ecossistema, mas algumas integrações podem ficar atrás do VSTest. |
| Preferes padrões rigorosos e comportamentos explícitos. | Microsoft.Testing.Platform | MTP favorece a execução determinística com um modelo de extensão leve, opcional, e registo em tempo de compilação. Por exemplo, pode falhar quando não são executados testes, reduzir a variabilidade dependente do ambiente e permitir desativar extensões individuais por ambiente. |
| Preferes padrões mais suaves, largos e compatíveis com versões anteriores. | VSTest | Ambas as plataformas preocupam-se com a compatibilidade retroativa. O VSTest prioriza padrões orientados para compatibilidade para cadeias de ferramentas diversas e existentes, enquanto o MTP oferece compatibilidade retroativa dentro do seu próprio modelo de extensão. |
| Estás bloqueado por um problema ou comportamento específico do VSTest no teu fluxo de trabalho atual. | Microsoft.Testing.Platform | Em muitos cenários, o mesmo fluxo de trabalho não é afetado quando passado para MTP devido a diferenças na arquitetura do modelo de execução e da extensão. |
Se o teu caso de uso específico não estiver listado, ambas as plataformas são escolhas válidas.
Integração e suporte a ferramentas
| Área de integração | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Integração IDE | Integração madura entre Visual Studio e outras ferramentas que dependem do protocolo VSTest e adaptadores. | Suportado em cenários Visual Studio e Visual Studio Code, com trabalho contínuo de integração em partes do ecossistema. |
| CI e ferramentas externas | Amplo suporte para ferramentas e tarefas estabelecidas, tanto da Microsoft quanto de outros fornecedores. No Azure DevOps, podes usar a tarefa VSTest (VSTest@3, vstest.console) ou a tarefa .NET (DotNetCoreCLI@2, dotnet test). |
Funciona em fluxos de trabalho CI e .NET modernos, mas algumas integrações de terceiros ainda podem ficar atrás do VSTest. No Azure DevOps, usa a tarefa .NET (DotNetCoreCLI@2, dotnet test). |
dotnet test Comportamento |
Modo VSTest padrão. Aplicam-se os argumentos e os comportamentos do VSTest. | O modo MTP nativo está disponível no SDK .NET 10 e posteriores. |
Para detalhes completos sobre dotnet test modos e argumentos, veja Testes com dotnet test.
Comece pelo seu framework de teste
Se escolheres VSTest
- MSTest: Realizar testes com MSTest
- NUnit: NUnit e Microsoft.Testing.Platform
- xUnit.net: Comece com xUnit.net
- TUnit: Não suportado no VSTest. Use Microsoft.Testing.Platform.
Se escolher Microsoft.Testing.Platform
- MSTest: Realizar testes com MSTest
- NUnit: Suporte Microsoft.Testing.Platform no NUnit runner
- xUnit.net: Plataforma de Testes Microsoft (xUnit.net v3)
- TUnit: Documentação TUnit
Próximos passos
- Aprenda os conceitos de MTP: Visão geral da Microsoft.Testing.Platform
- Compreender as opções do VSTest: Opções do VSTest
- Migrar do VSTest: Migrar do VSTest para o Microsoft.Testing.Platform
- Adicionar capacidades: Funcionalidades Microsoft.Testing.Platform