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-Tests können abhängig von Ihren Anforderungen auf verschiedene Arten ausgeführt werden. Sie können Tests über eine IDE (z. B. Visual Studio, Visual Studio Code oder JetBrains Rider), über die Befehlszeile oder über einen CI-Dienst (z. B. GitHub Actions oder Azure DevOps) ausführen.
In der Vergangenheit basiert MSTest auf VSTest für die Ausführung von Tests in allen Kontexten, aber ab Version 3.2.0 verfügt MSTest über einen eigenen Testläufer. Dieser neue Runner ist nicht nur einfacher und schneller als VSTest, sondern auch die empfohlene Methode für die Ausführung von MSTest-Tests.
VSTest vs Microsoft.Testing.Platform (MTP)
MSTest unterstützt die Ausführung von Tests mit VSTest und 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 gibt keine anderen App-Abhängigkeiten, wie vstest.console oder dotnet test, die zum Ausführen Ihrer Tests erforderlich sind. Sie können Ihre Tests jedoch weiterhin mit dotnet test.
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 im Lieferumfang von MSTest in 3.2.0 oder neuer enthalten.
Aktivieren von Microsoft.Testing.Platform in einem MSTest-Projekt
Es wird empfohlen , MSTest SDK zu verwenden, da es Ihre Projektkonfiguration und das Aktualisieren des Projekts erheblich vereinfacht, und es stellt eine ordnungsgemäße Ausrichtung der Versionen der Plattform (Microsoft.Testing.Platform) und deren Erweiterungen sicher.
Bei Verwendung von MSTest SDK sind Sie standardmäßig für die Verwendung von Microsoft.Testing.Platform angemeldet.
<Project Sdk="MSTest.Sdk/4.1.0">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
Alternativ können Sie den MSTest Runner aktivieren, indem Sie die EnableMSTestRunner-Eigenschaft hinzufügen und OutputType auf Exe in der Projektdatei setzen. 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>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>
Tipp
Um sicherzustellen, dass alle Testprojekte in der Lösung den MSTest Runner verwenden, setzen Sie die Eigenschaften in der Datei Directory.Build.props anstelle einzelner Projektdateien fest.
Konfigurationen und Filter
.runsettings
Microsoft.Testing.Platform unterstützt die Runsettings über die Befehlszeilenoption --settings. Die vollständige Liste der unterstützten MSTest-Einträge finden Sie unter Configure MSTest: Runsettings. Die folgenden Befehle zeigen verschiedene Verwendungsbeispiele.
Verwendung von dotnet run:
dotnet run --project Contoso.MyTests -- --settings config.runsettings
Verwendung von dotnet exec:
dotnet exec Contoso.MyTests.dll --settings config.runsettings
-oder-
dotnet Contoso.MyTests.dll --settings config.runsettings
Verwenden der ausführbaren Datei:
Contoso.MyTests.exe --settings config.runsettings
Testfilter
Sie können den Testfilter nahtlos mithilfe der Befehlszeilenoption --filterbereitstellen. Die folgenden Befehle zeigen einige Beispiele.
Verwendung von dotnet run:
dotnet run --project Contoso.MyTests -- --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Verwendung von dotnet exec:
dotnet exec Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
-oder-
dotnet Contoso.MyTests.dll --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"
Verwenden der ausführbaren Datei:
Contoso.MyTests.exe --filter "FullyQualifiedName~UnitTest1|TestCategory=CategoryA"