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 para VSTest para executar testes em todos os contextos, incluindo pipelines de CI (integração contínua), CLI, Explorador de Testes do Visual Studio e Explorador de Testes do VS Code. O Microsoft.Testing.Platform é inserido diretamente em seus projetos de teste e não há dependências de outro aplicativo, como vstest.console ou dotnet test, necessários para executar seus testes.
Dica
Se você precisar de ajuda para escolher entre o VSTest e o Microsoft.Testing.Platform, comece com a visão geral das plataformas de teste.
Use este artigo quando você já decidiu usar Microsoft.Testing.Platform e deseja entender seu modelo, funcionalidades e comportamento operacional.
Microsoft.Testing.Platform é open source. Você pode encontrar Microsoft.Testing.Platform código no repositório microsoft/testfx GitHub.
Comece aqui
Use o seguinte caminho, com base no que você precisa a seguir:
- Executar e depurar testes da CLI, IDE ou CI: executar e depurar testes
- Entender o comportamento da plataforma na CLI: Testando com
dotnet test - Localizar os parâmetros de CLI de plataforma e extensão em um só lugar: Referência de opções da CLI Microsoft.Testing.Platform
- Configurar corredores de estrutura: executar testes com suporte a MSTest ou Microsoft.Testing.Platform no NUnit (executor NUnit)
- Migrar uma configuração existente do VSTest: migrar do VSTest para Microsoft.Testing.Platform
- Adicionar diagnóstico, cobertura e relatórios: recursos do Microsoft.Testing.Platform
- Crie sua própria extensão: arquitetura Microsoft.Testing.Platform, pontos de extensão e serviços
Pilares Microsoft.Testing.Platform
Essa nova plataforma de teste baseia-se na experiência da equipe do .NET Developer Experience Testing e tem como objetivo enfrentar os desafios encontrados desde o lançamento do .NET Core em 2016. Embora haja um alto nível de compatibilidade entre o .NET Framework e o .NET Core/.NET, alguns recursos importantes como o sistema de plug-in e os novos possíveis fatores de forma de compilações .NET tornaram complexo evoluir ou dar suporte total ao novo recurso de tempo de execução com a arquitetura atual VSTest.
Os principais fatores que impulsionam a evolução da nova plataforma de testes são detalhados a seguir:
Determinismo: garantir que a execução dos mesmos testes em diferentes contextos (local, CI) produzirá o mesmo resultado. O novo runtime não depende da reflexão ou de qualquer outro recurso dinâmico de runtime do .NET para coordenar uma execução de teste.
Transparência de runtime: o runtime do teste não interfere no código do framework de teste, não cria contextos isolados como
AppDomainouAssemblyLoadContexte não usa reflexão ou resolvedores personalizados para assembly.Registro de extensões em tempo de compilação: extensões, como estruturas de teste e extensões dentro/fora do processo, são registradas durante o tempo de compilação para garantir o determinismo e facilitar a detecção de inconsistências.
Zero dependências: o núcleo da plataforma é um único assembly .NET,
Microsoft.Testing.Platform.dll, que não tem dependências além dos runtimes com suporte.Hostable: o runtime de teste pode ser hospedado em qualquer aplicativo .NET. Embora um aplicativo de console seja comumente usado para executar testes, você pode criar um aplicativo de teste em qualquer tipo de aplicativo .NET. Isso permite que você execute testes em contextos especiais, como dispositivos ou navegadores, onde pode haver limitações.
Suporte todos os fatores de forma .NET: Suporte fatores de forma .NET atuais e futuros, incluindo AOT Nativo.
Alto desempenho: encontrar o equilíbrio certo entre recursos e pontos de extensão para evitar sobrecarregar o runtime com código não fundamental. A nova plataforma de teste foi projetada para "orquestrar" uma execução de teste, em vez de fornecer detalhes de implementação sobre como realizá-la.
Extensível o suficiente: a nova plataforma é construída sobre pontos de extensibilidade para garantir a personalização máxima da execução de runtime. Ele permite que você configure o host do processo de teste, observe o processo de teste e consuma informações do framework de teste dentro do processo de host de teste.
Implantação de módulo único: o recurso de hospedagem permite um modelo de implantação de módulo único, em que um único resultado de compilação pode ser usado para dar suporte a todos os pontos de extensibilidade, tanto fora quanto no processo, sem a necessidade de enviar diferentes módulos executáveis.
Estruturas de teste com suporte
- MSTest. No MSTest, o suporte de
Microsoft.Testing.Platformé feito por meio do executor do MSTest. - NUnit. No NUnit, o suporte de
Microsoft.Testing.Platformé feito por meio do executor do NUnit. - xUnit.net. Para obter mais informações, consulte Microsoft Testing Platform (xUnit.net v3) e Microsoft Testing Platform (xUnit.net v2) na documentação do xUnit.net.
- TUnit: totalmente criado com base na
Microsoft.Testing.Platform. Para obter mais informações, consulte a documentação do TUnit.
Estruturas de destino com suporte
O Microsoft.Testing.Platform dá suporte a .NET (.NET 8 e posterior), .NET Framework (versões 4.6.2 e posterior) e direciona o NETStandard 2.0 para compatibilidade máxima com outros runtimes.
Executar e depurar testes
Para obter diretrizes detalhadas sobre como executar e fazer a depuração de projetos de teste MTP da CLI, Visual Studio, Visual Studio Code e pipelines de CI, consulte Executar e depurar testes.
Opções
Para obter a lista completa de opções de linha de comando de plataforma e extensão, consulte a referência de opções da CLI Microsoft.Testing.Platform.
Integração do MSBuild
O pacote NuGet Microsoft.Testing.Platform.MSBuild fornece várias integrações para a Microsoft.Testing.Platform com o MSBuild:
- Suporte para
dotnet test. Para obter mais informações, consulte Testando com dotnet test. - Suporte para
ProjectCapabilityexigido pelos Exploradores de TestesVisual StudioeVisual Studio Code. - Geração automática do ponto de entrada (método
Main). - Geração automática do arquivo de configuração.
- Detecção automática e registro de pacotes de extensão instalados.
Quando esse pacote está ativo (o padrão para mstest, NUnit e xUnit runners), instalar um pacote NuGet de extensão é tudo o que é necessário – as extensões são registradas automaticamente sem alterações de código. Se você desabilitar o ponto de entrada gerado automaticamente definindo <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, deverá registrar manualmente as extensões em seu método Main. Cada página de extensão documenta sua chamada de registro manual.
Observação
Essa integração funciona de maneira transitiva (um projeto que faz referência a outro projeto referenciando esse pacote se comportará como se ele referenciasse o pacote) e pode ser desabilitada por meio da propriedade IsTestingPlatformApplication MSBuild.