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.
Microsoft.Testing.Platform ist eine einfache und portierbare Alternative zu VSTest zum Ausführen von Tests in einer Befehlszeile, in CI-Pipelines (Continuous Integration), in der CLI, im Visual Studio-Test-Explorer und in Visual Studio Code. In diesem Artikel lernen Sie die wichtigsten Unterschiede zwischen Microsoft.Testing.Platform und VSTest kennen.
Unterschiede bei der Testausführung
Tests werden je nach Runner auf unterschiedliche Weise ausgeführt.
Ausführen von VSTest-Tests
VSTest wird mit Visual Studio, dem .NET SDK und als eigenständiges Tool im NuGet-Paket Microsoft.TestPlatform ausgeliefert. VSTest verwendet eine ausführbare Runner-Datei namens vstest.console.exe zum Ausführen von Tests, die direkt oder über dotnet test verwendet werden kann.
Ausführen von Microsoft.Testing.Platform-Tests
Microsoft.Testing.Platform ist direkt in Ihr Testprojekt eingebettet und enthält keine zusätzlichen ausführbare Dateien. Wenn Sie die ausführbare Datei des Projekts ausführen, werden die Tests ausgeführt. Weitere Informationen zum Ausführen von Microsoft.Testing.Platform-Tests finden Sie unter Übersicht über Microsoft.Testing.Platform: Ausführen und Debuggen von Tests.
Namespaces und NuGet-Pakete
Um sich mit Microsoft.Testing.Platform und VSTest vertraut zu machen, ist es hilfreich, die jeweiligen verwendeten Namespaces und NuGet-Pakete zu verstehen.
VSTest-Namespaces
VSTest ist eine Sammlung von Testtools, die auch als Testplattform bezeichnet werden. Der VSTest-Quellcode ist Open-Source und im GitHub-Repository microsoft/vstest verfügbar. Der Code verwendet den Namespace Microsoft.TestPlatform.*.
VSTest ist erweiterbar und allgemeine Typen werden im NuGet-Paket Microsoft.TestPlatform.ObjectModel platziert.
Microsoft.Testing.Platform-Namespaces
Microsoft.Testing.Platform basiert auf dem Microsoft.Testing.Platform-NuGet-Paket und anderen Bibliotheken im Microsoft.Testing.*-Namespace. Wie VSTest ist Microsoft.Testing.Platform Open-Source und verfügt über ein GitHub-Repository microsoft/testfx.
Kommunikationsprotokoll
Hinweis
Der Visual Studio Test Explorer unterstützt ab 17.12 das Protokoll "Microsoft.Testing.Platform". Wenn Sie Ihre Tests mit früheren Versionen von Visual Studio ausführen/debuggen, verwendet der Test-Explorer vstest.console.exe und das alte Protokoll, um diese Tests auszuführen.
Microsoft.Testing.Platform verwendet ein auf JSON-RPC basierendes Protokoll für das Kommunizieren zwischen Visual Studio und dem Testausführungsprozess. Das Protokoll ist im GitHub-Repository für MSTest dokumentiert.
VSTest verwendet auch ein JSON-basiertes Kommunikationsprotokoll, es ist jedoch nicht JSON-RPC-basiert.
Deaktivieren des neuen Protokolls
Um die Verwendung des neuen Protokolls im Test-Explorer zu deaktivieren, können Sie Ihr Projekt bearbeiten und die folgende Eigenschaft hinzufügen: <DisableTestingPlatformServerCapability>true</DisableTestingPlatformServerCapability>.
Sie können auch zu den Optionen für Vorschaufeatures in Visual Studio wechseln und die Option "Testplattform-Servermodus verwenden" deaktivieren.
Ausführbare Dateien
Im Lieferumfang von VSTest sind mehrere ausführbare Dateien enthalten, insbesondere vstest.console.exe, testhost.exe und datacollector.exe. Microsoft.Testing.Platform ist jedoch direkt in Ihr Testprojekt eingebettet und enthält keine anderen ausführbaren Dateien. Die ausführbare Datei, zu der Ihr Testprojekt kompiliert wird, dient als Host für alle Testtools und führt alle Aufgaben aus, die für die Durchführung von Tests erforderlich sind.