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.
Sugestão
Antes de escolher uma configuração de runner, consulte a visão geral das plataformas de teste.
Há várias maneiras de executar testes MSTest, dependendo de suas necessidades. Pode correr testes a partir de um IDE (por exemplo, Visual Studio, Visual Studio Code ou JetBrains Rider), ou da linha de comandos, ou de um serviço CI (como GitHub Actions ou Azure DevOps).
Historicamente, o MSTest dependia do VSTest para executar testes em todos os contextos, mas a partir da versão 3.2.0, o MSTest tem o seu próprio executor de testes. Este novo executor é mais leve e mais rápido do que o VSTest, sendo a maneira recomendada de executar testes MSTest.
VSTest vs Microsoft.Testing.Platform (MTP)
O MSTest suporta a execução de testes tanto com o VSTest como com o Microsoft.Testing.Platform (MTP). O suporte para MTP é alimentado pelo runner MSTest, que pode executar testes em todos os contextos (por exemplo, pipelines de integração contínua (CI), CLI, Visual Studio Test Explorer e VS Code Text Explorer). O runner MSTest está integrado diretamente nos seus projetos de teste MSTest, e não são necessárias outras dependências de aplicação, como vstest.console ou dotnet test, para executar os seus testes. No entanto, ainda pode executar os seus testes usando dotnet test.
O runner MSTest é open source e baseia-se na biblioteca Microsoft.Testing.Platform. Pode encontrar código Microsoft.Testing.Platform no repositório microsoft/testfx GitHub. O MSTest Runner vem incluído com MSTest in 3.2.0 ou mais recente.
Ativar o Microsoft.Testing.Platform num projeto MSTest
Recomenda-se usar o SDK MSTest pois simplifica muito a configuração e a atualização do projeto, e garante um alinhamento adequado das versões da plataforma (Microsoft.Testing.Platform) e das suas extensões.
Quando usas MSTest SDK, por defeito, estás autorizado a usar o Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Em alternativa, podes ativar o MSTest runner adicionando a propriedade EnableMSTestRunner e definindo OutputType para Exe no teu ficheiro de project. Também precisa de garantir que está a usar MSTest 3.2.0 ou uma versão mais recente. Recomendamos vivamente que atualize para a versão mais recente do MSTest disponível.
Considere o seguinte ficheiro de projeto exemplo:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Enable Microsoft.Testing.Platform, this is an opt-in feature -->
<EnableMSTestRunner>true</EnableMSTestRunner>
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<!--
Displays error on console in addition to the log file. Note that this feature comes with a performance impact.
For more information, visit https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test#show-failure-per-test
-->
<TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<!--
MSTest meta package is the recommended way to reference MSTest.
It's equivalent to referencing:
Microsoft.NET.Test.Sdk
MSTest.TestAdapter
MSTest.TestFramework
MSTest.Analyzers
Starting with 3.8, it also includes:
Microsoft.Testing.Extensions.TrxReport
Microsoft.Testing.Extensions.CodeCoverage
-->
<PackageReference Include="MSTest" Version="4.1.0" />
</ItemGroup>
</Project>
Sugestão
Para garantir que todos os projetos de teste na sua solução usem o runner MSTest, defina as propriedades EnableMSTestRunner e TestingPlatformDotnetTestSupport no ficheiro Directory.Build.props em vez de ficheiros individuais de project.
Configurações e filtros
.runsettings
O Microsoft.Testing.Platform suporta as definições de execução através da opção --settingsde linha de comandos. Para a lista completa de entradas MSTest suportadas, veja Configurar MSTest: Runsettings. Os comandos seguintes mostram vários exemplos de utilização.
Utilização de dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Utilização de dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-ou-
dotnet Contoso.MyTests.dll --settings config.runsettings
Usando o executável:
Contoso.MyTests.exe --settings config.runsettings
Filtro de testes
Pode fornecer os testes filtro de forma fluida usando a opção de linha de comando --filter. Os comandos seguintes mostram alguns exemplos.
Utilização de dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Utilização de dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-ou-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Usando o executável:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"