Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MSTest ondersteunt het uitvoeren van tests met zowel VSTest als Microsoft.Testing.Platform (MTP). De ondersteuning voor MTP wordt mogelijk gemaakt door de MSTest runner, die tests kan uitvoeren in alle contexten (bijvoorbeeld CI-pijplijnen (continue integratie), CLI, Visual Studio Test Explorer en VS Code Text Explorer. De MSTest runner is rechtstreeks ingesloten in uw MSTest-testprojecten en er zijn geen andere app-afhankelijkheden, zoals vstest.console
of dotnet test
, die nodig zijn om uw tests uit te voeren. U kunt uw tests echter nog steeds uitvoeren met behulp van dotnet test
.
De MSTest runner is open source en bouwt voort op de Microsoft.Testing.Platform
-bibliotheek. U vindt Microsoft.Testing.Platform
code in de microsoft/testfx GitHub-opslagplaats. De MSTest-runner wordt geleverd met MSTest in 3.2.0
of nieuwer.
Microsoft.Testing.Platform inschakelen in een MSTest-project
Het is raadzaam om MSTest SDK te gebruiken, omdat het de configuratie van uw project aanzienlijk vereenvoudigt en het project bijwerkt, en het zorgt voor een juiste uitlijning van de versies van het platform (Microsoft.Testing.Platform) en de bijbehorende extensies.
Wanneer u MSTest SDK
gebruikt, bent u standaard aangemeld voor het gebruik van Microsoft.Testing.Platform.
<Project Sdk="MSTest.Sdk/3.8.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
U kunt MSTest runner ook inschakelen door de EnableMSTestRunner
eigenschap toe te voegen en OutputType
in te stellen als Exe
in uw projectbestand. U moet er ook voor zorgen dat u MSTest 3.2.0
of nieuwer gebruikt. We raden u ten zeerste aan om bij te werken naar de nieuwste beschikbare MSTest-versie.
Bekijk het volgende voorbeeldprojectbestand:
<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>net8.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="3.8.0" />
<!--
Coverlet collector isn't compatible with Microsoft.Testing.Platform, you can
either switch to Microsoft CodeCoverage (as shown below),
or switch to be using coverlet global tool
https://github.com/coverlet-coverage/coverlet#net-global-tool-guide-suffers-from-possible-known-issue
-->
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"
Version="17.10.1" />
</ItemGroup>
</Project>
Aanbeveling
Als u ervoor wilt zorgen dat alle testprojecten in uw oplossing de MSTest runner gebruiken, stelt u de eigenschappen EnableMSTestRunner
en TestingPlatformDotnetTestSupport
in Directory.Build.props bestand in in plaats van afzonderlijke projectbestanden.
Configuraties en filters
.runsettings
Microsoft.Testing.Platform ondersteunt de runsettings via de opdrachtregeloptie --settings
. Zie MSTest configureren: Runsettings voor de volledige lijst met ondersteunde MSTest-vermeldingen. In de volgende opdrachten worden verschillende gebruiksvoorbeelden weergegeven.
Met behulp van dotnet run
:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Met behulp van dotnet exec
:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
– of –
dotnet Contoso.MyTests.dll --settings config.runsettings
Gebruik van het uitvoerbare bestand:
Contoso.MyTests.exe --settings config.runsettings
Filter voor tests
U kunt het testfilter naadloos opgeven met behulp van de opdrachtregeloptie--filter
. In de volgende opdrachten ziet u enkele voorbeelden.
Met behulp van dotnet run
:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Met behulp van dotnet exec
:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
– of –
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Gebruik van het uitvoerbare bestand:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"