Introdução ao MSTest

A forma recomendada de criar um projeto MSTest é utilizar o MSTest.Sdk, um SDK de projeto MSBuild que proporciona uma experiência de primeira classe para testes com MSTest. Inclui todos os padrões recomendados e simplifica a configuração do projeto.

Crie um projeto com MSTest.Sdk

Para criar um projeto MSTest, defina o Sdk atributo para MSTest.Sdk juntamente com a versão MSTest no seu ficheiro de projeto:

<Project Sdk="MSTest.Sdk/4.1.0">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

</Project>

Observação

4.1.0 é dado como exemplo e pode ser substituído por qualquer versão mais recente.

Para simplificar a gestão de versões em múltiplos projetos de teste, recomendamos especificar a versão do SDK num ficheiroglobal.json ao nível da solução:

<Project Sdk="MSTest.Sdk">

  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

</Project>
{
    "msbuild-sdks": {
        "MSTest.Sdk": "4.1.0"
    }
}

Para obter mais informações, consulte Usar SDKs de projeto MSBuild.

Ao build realizar o projeto, todos os componentes necessários são restaurados e instalados usando o fluxo de trabalho padrão do NuGet. Podes usar as mesmas ferramentas (por exemplo, dotnet test ou Visual Studio) que qualquer outro projeto de teste.

Sugestão

Por defeito, o MSTest.Sdk usa o runner MSTest com MTP. Para opções avançadas de configuração como perfis de extensão, mudança para VSTest ou integração com Aspire um Playwright, consulte a configuração do SDK MSTest.

Alternativa: Usar o pacote MSTest NuGet

Se preferir não usar o MSTest.Sdk, pode usar o meta-pacote MSTest NuGet, que inclui:

  • MSTest.TestFramework, MSTest.TestAdapter, e MSTest.Analyzers para a funcionalidade central do MSTest.
  • Microsoft.NET.Test.Sdk para integração com VSTest e suporte à hospedagem de teste.
  • Microsoft.Testing.Extensions.CodeCoverage e Microsoft.Testing.Extensions.TrxReport para extensões MTP.

Visão geral dos pacotes NuGet

A funcionalidade do MSTest está dividida por vários pacotes NuGet:

Package Description
MSTest.TestFramework Contém os atributos e classes usados para definir os testes MSTest.
MSTest.TestAdapter Contém o adaptador de teste que descobre e executa os testes MSTest.
MSTest.Analyzers Contém analisadores que ajudam a escrever testes de alta qualidade.

Observação

Se estiver a criar um projeto de infraestrutura de testes destinado a ser uma biblioteca auxiliar para múltiplos projetos de teste, instale MSTest.TestFramework e MSTest.Analyzers diretamente nesse projeto.

Tutoriais específicos de linguagem

Para tutoriais detalhados passo a passo na tua linguagem .NET preferida:

Exemplos de projetos

A equipa da MSTest mantém projetos de exemplo no repositório Microsoft/Testfx que demonstram várias funcionalidades e cenários:

Exemplo Description Link
Simple1 Configuração básica do runner MSTest Ver no GitHub
DemoMSTestSdk Configuração do projeto MSTest SDK Ver no GitHub
UwpMtpApp Testes modernos de .NET UWP com Microsoft. Testing.Platform Ver no GitHub
ClassicUwpMtpApp Testes UWP clássicos uap10.0 com Microsoft.Testing.Platform Ver no GitHub
UwpVSTestApp Testes UWP legados com VSTest Ver no GitHub
WinUIMtpPackagedApp Testes empacotados com o WinUI 3 e o Microsoft.Testing.Platform Ver no GitHub
WinUIMtpUnpackagedApp Testes do WinUI 3 sem empacotamento com Microsoft.Testing.Platform Ver no GitHub
WinUIMtpAppContainerApp Testes de WinUI 3 em AppContainer com Microsoft.Testing.Platform Ver no GitHub
WinUIVSTestApp Testes do WinUI 3 com VSTest Ver no GitHub
NativeAotRunner Compilação nativa AOT Ver no GitHub
RunInDocker Execução de testes containerizados Ver no GitHub