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.
O Microsoft.Testing.Platform é uma alternativa leve e portátil ao VSTest para executar testes em todos os contextos, incluindo integração contínua (CI) pipelines, CLI, Visual Studio Test Explorer e VS Code Test Explorer. O Microsoft.Testing.Platform é incorporado diretamente em seus projetos de teste e não há outras dependências de aplicativo, como vstest.console ou dotnet test necessárias para executar seus testes.
Dica
Se precisar de ajuda para escolher entre VSTest e Microsoft.Testing.Platform, comece pela visão geral das plataformas de Teste.
Use este artigo quando já decidiu usar o Microsoft.Testing.Platform e quiser compreender o seu modelo, capacidades e comportamento operacional.
Microsoft.Testing.Platform é open source. Pode encontrar código Microsoft.Testing.Platform no repositório microsoft/testfx GitHub.
Comece aqui
Use o seguinte caminho, de acordo com o que precisar a seguir:
- Executar e depurar testes a partir de CLI, IDE ou CI: Executar e depurar testes
- Compreender o comportamento da plataforma em CLI: Testar com
dotnet test - Encontre switches CLI de plataforma e extensão num só local: referência de opções de CLI Microsoft.Testing.Platform
- Configurar executores de frameworks: Executar testes com MSTest ou suporte da Microsoft.Testing.Platform no NUnit (executante NUnit)
- Migrar uma configuração VSTest existente: Migrar de VSTest para Microsoft.Testing.Platform
- Adicionar diagnóstico, cobertura e relatórios: funcionalidades Microsoft.Testing.Platform
- Construa a sua própria extensão: arquitetura Microsoft.Testing.Platform, pontos de extensão e Serviços
Pilares da Plataforma Microsoft.Testing
Esta nova plataforma de testes baseia-se na experiência da equipa de Testagem de Experiência para Desenvolvedores do .NET e visa responder aos desafios enfrentados desde o lançamento do .NET Core em 2016. Embora exista um elevado nível de compatibilidade entre o .NET Framework e o .NET Core/.NET, algumas funcionalidades-chave, como o sistema de plugins e os novos possíveis formatos de compilações .NET, tornaram complexo evoluir ou suportar totalmente a nova funcionalidade de runtime com a atual arquitetura VSTest plataforma.
Os principais fatores determinantes para a evolução da nova plataforma de testes são detalhados a seguir:
Determinismo: Garantir que executar os mesmos testes em contextos diferentes (local, CI) produzirá o mesmo resultado. O novo tempo de execução não se baseia na reflexão nem em qualquer outro recurso dinâmico do tempo de execução .NET para coordenar uma execução de teste.
Transparência do tempo de execução: O tempo de execução do teste não interfere com o código da estrutura de teste, não cria contextos isolados como
AppDomainouAssemblyLoadContexte não usa resolvedores de reflexão ou assembly personalizados.Registro em tempo de compilação de extensões: Extensões, como estruturas de teste e extensões in/out-of-process, são registradas durante o tempo de compilação para garantir determinismo e facilitar a deteção de inconsistências.
Zero: O núcleo da plataforma é um único assembly .NET, , que não tem dependências além dos ambientes de execução suportados. Hostable: O tempo de execução do teste pode ser alojado em qualquer aplicação .NET. Embora uma aplicação de consola seja comumente usada para executar testes, pode criar uma aplicação de teste em qualquer tipo de aplicação .NET. Isso permite que você execute testes em contextos especiais, como dispositivos ou navegadores, onde pode haver limitações.
Suporta todos os fatores de forma .NET: Suporta os fatores de forma .NET atuais e futuros, incluindo o AOT nativo.
Performant: Encontrar o equilíbrio certo entre recursos e pontos de extensão para evitar o inchaço do tempo de execução com código não fundamental. A nova plataforma de testes foi concebida para "orquestrar" uma execução de testes, em vez de fornecer detalhes de implementação sobre como fazê-lo.
Extensível o suficiente: A nova plataforma é construída em pontos de extensão para permitir a máxima personalização durante a execução. Ele permite que você configure o host do processo de teste, observe o processo de teste e consuma informações da estrutura de teste dentro do processo do host de teste.
implantação de módulo único: O recurso de hostability permite um modelo de implantação de módulo único, onde um único resultado de compilação pode ser usado para suportar todos os pontos de extensibilidade, tanto fora de processo como em processo, sem a necessidade de entregar diferentes módulos executáveis.
Estruturas de teste suportadas
- MSTest. No MSTest, o suporte de
Microsoft.Testing.Platformé feito através de corredor MSTest. - NUnit. Em NUnit, o
Microsoft.Testing.Platformé suportado através do executor NUnit . - xUnit.net. Para mais informações, consulte Microsoft Testing Platform (xUnit.net v3) e Microsoft Testing Platform (xUnit.net v2) da documentação xUnit.net.
- TUnit: inteiramente construído sobre o
Microsoft.Testing.Platform, para obter mais informações, consulte a documentação do TUnit em .
Estruturas de destino suportadas
O Microsoft.Testing.Platform suporta .NET (.NET 8 e posteriores), .NET Framework (versões 4.6.2 e posteriores) e visa o NETStandard 2.0 para máxima compatibilidade com outros tempos de execução.
Executar e depurar testes
Para orientações detalhadas sobre a execução e depuração de projetos de teste MTP a partir de CLI, Visual Studio, Visual Studio Code e CI pipelines, veja Run and debug tests.
Opções
Para a lista completa de opções de linha de comandos da plataforma e extensão, consulte a referência de opções de CLI do Microsoft.Testing.Platform.
Integração com MSBuild
O pacote NuGet Microsoft.Testing.Platform.MSBuild fornece várias integrações para Microsoft.Testing.Platform com o MSBuild:
- Suporte para
dotnet test. Para obter mais informações, consulte Testando com o teste dotnet. - O suporte para
ProjectCapabilityexigido peloVisual StudioeVisual Studio CodeTest Explorers. - Geração automática do ponto de entrada (método
Main). - Geração automática do arquivo de configuração.
- Deteção automática e registo dos pacotes de extensão instalados.
Quando este pacote está ativo (o padrão para os runners MSTest, NUnit e xUnit), basta instalar um pacote NuGet de extensões — as extensões são registadas automaticamente sem alterações de código. Se desativar o ponto de entrada gerado automaticamente ao definir <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, deve registar manualmente as extensões no método Main. Cada página de extensão documenta sua chamada de registo manual.
Observação
Esta integração funciona de forma transitiva (um project que faz referência a outro project que referencia este pacote comportar-se-á como se referenciasse o pacote) e pode ser desativado através da propriedade IsTestingPlatformApplication MSBuild.