Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
MSTest unterstützt die Ausführung von Tests sowohl mit VSTest als auch mit Microsoft.Testing.Platform (MTP)-. Die Unterstützung für MTP wird von der MSTest-Runner unterstützt, die Tests in allen Kontexten (z. B. Ci-Pipelines für kontinuierliche Integration, CLI, Visual Studio Test Explorer und VS Code Text Explorer) ausführen kann. Der MSTest Runner ist direkt in Ihre MSTest-Testprojekte eingebettet, und es sind keine anderen App-Abhängigkeiten wie vstest.console
oder dotnet test
erforderlich, um Ihre Tests auszuführen. Sie können Ihre Tests jedoch weiterhin mit dotnet test
ausführen.
Der MSTest-Runner ist Open Source und baut auf der Microsoft.Testing.Platform
-Bibliothek auf. Sie finden Microsoft.Testing.Platform
Code im microsoft/testfx GitHub-Repository. Der MSTest Runner ist gebündelt mit MSTest in 3.2.0
oder einer neueren Version.
Aktivieren von Microsoft.Testing.Platform in einem MSTest-Projekt
Es wird empfohlen, MSTest SDK- zu verwenden, da die Projektkonfiguration und das Aktualisieren des Projekts erheblich vereinfacht wird, und es stellt eine ordnungsgemäße Ausrichtung der Versionen der Plattform (Microsoft.Testing.Platform) und deren Erweiterungen sicher.
Wenn Sie MSTest SDK
verwenden, haben Sie sich standardmäßig für die Verwendung von Microsoft.Testing.Platform entschieden.
<Project Sdk="MSTest.Sdk/3.8.2">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Alternativ können Sie MSTest-Runner aktivieren, indem Sie die EnableMSTestRunner
-Eigenschaft hinzufügen und OutputType
auf Exe
in der Projektdatei festlegen. Außerdem müssen Sie sicherstellen, dass Sie MSTest 3.2.0
oder neuer verwenden. Es wird dringend empfohlen, auf die neueste verfügbare MSTest-Version zu aktualisieren.
Betrachten Sie die folgende Beispielprojektdatei:
<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>
Tipp
Um sicherzustellen, dass alle Testprojekte in Ihrer Lösung den MSTest-Runner verwenden, legen Sie die eigenschaften EnableMSTestRunner
und TestingPlatformDotnetTestSupport
in Directory.Build.props Datei anstelle einzelner Projektdateien fest.
Konfigurationen und Filter
.runsettings
Microsoft.Testing.Platform unterstützt den runsettings über die Befehlszeilenoption --settings
. Die vollständige Liste der unterstützten MSTest-Einträge finden Sie unter Konfigurieren von MSTest: Ausführungseinstellungen. Die folgenden Befehle zeigen verschiedene Verwendungsbeispiele.
Verwenden von dotnet run
:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Verwenden von dotnet exec
:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
Oder
dotnet Contoso.MyTests.dll --settings config.runsettings
Mit der ausführbaren Datei:
Contoso.MyTests.exe --settings config.runsettings
Testfilter
Sie können die Tests nahtlos mit der Befehlszeilenoption --filter
. Die folgenden Befehle zeigen einige Beispiele.
Verwenden von dotnet run
:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Verwenden von dotnet exec
:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Oder
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Mit der ausführbaren Datei:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"