Übersicht über Microsoft.Testing.Platform
Microsoft.Testing.Platform ist eine einfache und portierbare Alternative zu VSTest zum Ausführen von Tests in allen Kontexten, darunter Continuous Integration-Pipelines (CI), Befehlszeilenschnittstelle, 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.
Microsoft.Testing.Platform
ist Open Source. Sie finden Microsoft.Testing.Platform
-Code im Microsoft/testfx GitHub-Repository.
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: In Bearbeitung, weitere Informationen finden Sie unter Microsoft-Testplattform für xUnit.
Ausführen und Debuggen von Tests
Microsoft.Testing.Platform
--Testprojekte werden als ausführbare Dateien erstellt, die direkt ausgeführt (oder debuggt) werden können. Es gibt keine zusätzliche Testausführungskonsole und keinen zusätzlichen Befehl. Die App wird mit einem Nonzero-Exitcode beendet, wenn ein Fehler auftritt, wie bei den meisten ausführbaren Dateien. Weitere Informationen zu den bekannten Exitcodes finden Sie unter Microsoft.Testing.Platform-Exitcodes.
Wichtig
Standardmäßig sammelt Microsoft.Testing.Platform
Telemetrie. Weitere Informationen und Optionen zum Deaktivieren finden Sie unter Microsoft.Testing.Platform-Telemetrie.
Das Veröffentlichen des Testprojekts mithilfe von dotnet publish
und das direkte Ausführen der App ist eine weitere Möglichkeit, Ihre Tests auszuführen. Führen Sie z. B. ./Contoso.MyTests.exe
aus. In einigen Szenarien ist es auch praktikabel, dotnet build
zur Erstellung der ausführbaren Datei zu verwenden, es kann jedoch auch Grenzfälle geben, z. B. Native AOT.
Verwenden Sie dotnet run
Der dotnet run
-Befehl kann zum Erstellen und Ausführen des Testprojekts verwendet werden. Dies ist die einfachste, obwohl manchmal langsamste Möglichkeit, Ihre Tests auszuführen. Die Verwendung von dotnet run
ist praktisch, wenn Sie Tests lokal bearbeiten und ausführen, da sichergestellt wird, dass das Testprojekt bei Bedarf neu erstellt wird. dotnet run
sucht das Projekt automatisch im aktuellen Ordner.
dotnet run --project Contoso.MyTests
Weitere Informationen zu dotnet run
finden Sie unter Dotnet-Ausführung.
Verwenden Sie dotnet exec
Der dotnet exec
- oder dotnet
-Befehl wird verwendet, um ein bereits erstelltes Testprojekt auszuführen (oder zu nutzen). Dies ist eine Alternative zum direkten Ausführen der Anwendung. dotnet exec
erfordert einen Pfad zur integrierten Testprojekt-DLL.
dotnet exec Contoso.MyTests.dll
oder
dotnet Contoso.MyTests.dll
Hinweis
Wenn Sie den Pfad zur ausführbaren Datei des Testprojekts (*.exe) angeben, tritt ein Fehler auf:
Error:
An assembly specified in the application dependencies manifest
(Contoso.MyTests.deps.json) has already been found but with a different
file extension:
package: 'Contoso.MyTests', version: '1.0.0'
path: 'Contoso.MyTests.dll'
previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'
Weitere Informationen zu dotnet exec
finden Sie unter dotnet exec.
Verwenden Sie dotnet test
Microsoft.Testing.Platform
bietet eine Kompatibilitätsschicht für vstest.console.exe
und dotnet test
und stellt so sicher, dass Sie Ihre Tests wie zuvor ausführen können, während gleichzeitig ein neues Ausführungsszenario aktiviert wird.
dotnet test Contoso.MyTests.dll
Optionen
In der nachfolgenden Liste werden nur die Plattformoptionen beschrieben. Um die spezifischen Optionen anzuzeigen, die von jeder Erweiterung bereitgestellt werden, verweisen Sie entweder auf die Dokumentationsseite der Erweiterung, oder verwenden Sie die Option --help
.
--diagnostic
Aktiviert die Diagnoseprotokollierung. Die Standardprotokollebene ist Trace
. Die Datei wird im Ausgabeverzeichnis mit dem folgenden Namensformat geschrieben: log_[MMddHHssfff].diag
.
--diagnostic-filelogger-synchronouswrite
Zwingt die integrierte Dateiprotokollierung, Protokolle synchron zu schreiben. Nützlich für Szenarien, in denen keine Protokolleinträge verloren gehen sollen (bei Prozessabsturz). Dadurch wird die Testausführung verlangsamt.
--diagnostic-output-directory
Das Ausgabeverzeichnis der Diagnoseprotokollierung. Wird es nicht angegeben, wird die Datei im Standardverzeichnis TestResults generiert.
--diagnostic-output-fileprefix
Das Präfix für den Namen der Protokolldatei. Wird standardmäßig auf "log_"
festgelegt.
--diagnostic-verbosity
Definiert den Ausführlichkeitsgrad, wenn die Option --diagnostic
verwendet wird. Verfügbare Werte sind Trace
, Debug
, Information
, Warning
, Error
oder Critical
.
--help
Gibt eine Beschreibung zur Verwendung des Befehls aus.
-ignore-exit-code
Ermöglicht, dass einige Exitcodes ungleich null ignoriert und stattdessen als 0
zurückgegeben werden. Weitere Informationen finden Sie im Abschnitt Ignorieren spezifischer Exitcodes.
--info
Zeigt erweiterte Informationen zur .NET-Testanwendung an, z. B.:
- Zur Plattform.
- Zur Umgebung.
- Zu allen registrierten Befehlszeilenanbietern, z. B. ihre Werte für
name
,version
,description
undoptions
. - Zu allen registrierten Tools, z. B. ihre Werte für
command
,name
,version
,description
und zu allen Befehlszeilenanbietern.
Dieses Feature wird verwendet, um Erweiterungen zu verstehen, die dieselbe Befehlszeilenoption registrieren, oder um die Änderungen bei den verfügbaren Optionen zwischen mehreren Versionen einer Erweiterung (oder der Plattform) zu ermitteln.
--list-tests
Auflisten verfügbarer Tests. Tests werden nicht ausgeführt.
--minimum-expected-tests
Gibt die Mindestanzahl der auszuführenden Tests an. Standardmäßig wird davon ausgegangen, dass mindestens ein Test ausgeführt wird.
--results-directory
Das Verzeichnis, in dem die Testergebnisse gespeichert werden. Wenn das Verzeichnis noch nicht vorhanden ist, wird es erstellt. Der Standardwert ist TestResults
im Verzeichnis, das die Testanwendung enthält.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für