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 tragbare Alternative zu VSTest- für die Ausführung von Tests in allen Kontexten, einschließlich fortlaufender Integrationspipelinen, CLI, Visual Studio Test Explorer und VS Code Test Explorer. Microsoft.Testing.Platform ist direkt in Ihre Testprojekte eingebettet, und es sind keine anderen Apps wie vstest.console oder dotnet test erforderlich, um Ihre Tests auszuführen.
Tipp
Wenn Sie Hilfe bei der Auswahl zwischen VSTest und Microsoft.Testing.Platform benötigen, beginnen Sie mit der Übersicht über Testplattformen.
Verwenden Sie diesen Artikel, wenn Sie sich bereits für die Verwendung von Microsoft.Testing.Platform entschieden haben und das Modell, die Funktionen und das Betriebsverhalten verstehen möchten.
Microsoft.Testing.Platform ist Open Source. Sie finden Microsoft.Testing.Platform Code im microsoft/testfx GitHub-Repository.
Beginnen Sie hier
Verwenden Sie den folgenden Pfad, basierend auf dem, was Sie als Nächstes benötigen:
- Ausführen und Debuggen von Tests über CLI, IDE oder CI: Ausführen und Debuggen von Tests
- Grundlegendes zum Plattformverhalten in CLI: Testen mit
dotnet test - Finden Sie Plattform- und Erweiterungs-CLI-Switches an einer zentralen Stelle: Referenz zu Microsoft.Testing.Platform CLI-Optionen
- Konfigurieren von Framework-Läufern: Ausführen von Tests mit MSTest - oder Microsoft.Testing.Platform-Unterstützung in NUnit (NUnit runner)
- Migrieren eines vorhandenen VSTest-Setups: Migrieren von VSTest zu Microsoft.Testing.Platform
- Hinzufügen von Diagnose-, Abdeckungs- und Berichterstellungsfunktionen: Microsoft.Testing.Platform-Features
- Erstellen Sie Ihre eigene Erweiterung: Microsoft.Testing.Platform-Architektur, Erweiterungspunkte und Dienste
Microsoft.Testing.Platform-Pfeiler
Diese neue Testplattform basiert auf der Erfahrung des .NET Developer Experience Testing-Teams und zielt darauf ab, die Herausforderungen zu beheben, die seit der Veröffentlichung von .NET Core im Jahr 2016 aufgetreten sind. Obwohl es ein hohes Maß an Kompatibilität zwischen .NET Framework und .NET Core/.NET gibt, haben einige wichtige Features wie das Plug-In-System und die neuen möglichen Formfaktoren von .NET-Kompilierungen es komplex gemacht, das neue Laufzeitfeature mit der aktuellen VSTest-Plattformarchitektur zu entwickeln oder vollständig zu unterstützen.
Die wichtigsten Faktoren für die Entwicklung der neuen Testplattform sind im Folgenden aufgeführt:
Determinismus: Sicherstellen, dass das Ausführen der gleichen Tests in verschiedenen Kontexten (lokal, CI) dasselbe Ergebnis erzeugt. Die neue Laufzeitumgebung basiert nicht auf Reflexion oder anderen dynamischen Funktionen der .NET-Laufzeitumgebung, um den Ablauf eines Tests zu koordinieren.
Laufzeittransparenz: Die Testlaufzeit stört den Testframeworkcode nicht, erstellt keine isolierten Kontexte wie
AppDomainoderAssemblyLoadContext, und es verwendet keine Spiegelung oder benutzerdefinierte Assemblylöser.Kompilierungszeitregistrierung von Erweiterungen: Erweiterungen, z. B. Testframeworks und In-of-Process-Erweiterungen, werden während der Kompilierungszeit registriert, um die Determinität zu gewährleisten und die Erkennung von Inkonsistenzen zu erleichtern.
Nullabhängigkeiten: Der Kern der Plattform ist eine einzelne .NET-Assembly,
Microsoft.Testing.Platform.dlldie keine anderen Abhängigkeiten als die unterstützten Laufzeiten aufweist.Hostbar: Die Testlaufzeit kann in jeder .NET-Anwendung gehostet werden. Während eine Konsolenanwendung häufig zum Ausführen von Tests verwendet wird, können Sie eine Testanwendung in jeder Art von .NET-Anwendung erstellen. Auf diese Weise können Sie Tests in speziellen Kontexten ausführen, z. B. Geräte oder Browser, bei denen es einschränkungen gibt.
Unterstützen Sie alle .NET-Formfaktoren: Unterstützen Sie aktuelle und zukünftige .NET-Formfaktoren, einschließlich Native AOT.
Performant: Finden Sie das richtige Gleichgewicht zwischen Features und Erweiterungspunkten, um zu vermeiden, dass die Laufzeit mit nicht grundlegendem Code aufgebläht wird. Die neue Testplattform dient dazu, einen Testlauf zu "koordinieren", anstatt Implementierungsdetails zur Vorgehensweise bereitzustellen.
Erweiterbar genug: Die neue Plattform basiert auf Erweiterbarkeitspunkten, um eine maximale Anpassung der Laufzeitausführung zu ermöglichen. Sie können den Testprozesshost konfigurieren, den Testprozess beobachten und Informationen aus dem Testframework innerhalb des Testhostprozesses nutzen.
Bereitstellung eines einzelnen Moduls: Das Hostierbarkeitsfeature ermöglicht ein einzelnes Modulbereitstellungsmodell, bei dem ein einziges Kompilierungsergebnis verwendet werden kann, um alle Erweiterbarkeitspunkte zu unterstützen, sowohl out-of-process als auch in-process, ohne dass verschiedene ausführbare Module ausgeliefert werden müssen.
Unterstützte Testframeworks
- MSTest. In MSTest erfolgt die Unterstützung von
Microsoft.Testing.Platformüber MSTest Runner. - NUnit. In NUnit erfolgt die Unterstützung von
Microsoft.Testing.Platformüber NUnit-Runner. - xUnit.net. Weitere Informationen finden Sie in der xUnit.net-Dokumentation unter Microsoft Testing Platform (xUnit.net v3) und microsoft Testing Platform (xUnit.net v2 ).
- TUnit: vollständig konstruiert auf der Grundlage von
Microsoft.Testing.Platform. Weitere Informationen finden Sie in der Dokumentation zu TUnit.
Unterstützte Zielframeworks
Microsoft.Testing.Platform unterstützt .NET (.NET 8 und höher), .NET Framework (Versionen 4.6.2 und höher) und zielt auf NETStandard 2.0 ab, um maximale Kompatibilität mit anderen Runtimes zu gewährleisten.
Ausführen und Debuggen von Tests
Ausführliche Anleitungen zum Ausführen und Debuggen von MTP-Testprojekten von CLI, Visual Studio, Visual Studio Code und CI-Pipelines finden Sie unter Ausführen und Debuggen von Tests.
Optionen
Die vollständige Liste der Befehlszeilenoptionen für Plattform und Erweiterung finden Sie unter Microsoft.Testing.Platform CLI options reference.
MSBuild-Integration
The NuGet package Microsoft.Testing.Platform.MSBuild bietet verschiedene Integrationen für Microsoft.Testing.Platform mit MSBuild:
- Unterstützung für
dotnet testWeitere Informationen finden Sie unter "Testen mit dotnet test". - Unterstützung für
ProjectCapabilityerforderlich für die Test-ExplorerVisual StudioundVisual Studio Code. - Automatische Generierung des Einstiegspunkts (
Main-Methode). - Automatische Generierung der Konfigurationsdatei.
- Automatische Erkennung und Registrierung installierter Erweiterungspakete.
Wenn dieses Paket aktiv ist (der Standardwert für MSTest, NUnit und xUnit), ist lediglich die Installation eines NuGet-Erweiterungspakets erforderlich, denn Erweiterungen werden automatisch registriert, ohne dass Codeänderungen notwendig sind. Wenn Sie den automatisch generierten Einstiegspunkt durch Festlegen <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>deaktivieren, müssen Sie Erweiterungen manuell in Ihrer Main Methode registrieren. Jede Erweiterungsseite dokumentiert ihren manuellen Registrierungsanruf.
Hinweis
Diese Integration funktioniert transitiv (ein Projekt, das auf ein anderes Projekt verweist, das auf dieses Paket verweist, verhält sich so, als ob es auf das Paket verweist) und kann über die IsTestingPlatformApplication-MSBuild-Eigenschaft deaktiviert werden.