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.
Der Terminaltestreporter ist die integrierte Implementierung von Status und Fortschrittsberichterstattung an das Terminal (Konsole). Es ist Teil des Kerns Microsoft. Testing.Platform (MTP) und erfordert keine zusätzlichen NuGet-Pakete.
Ausgabemodi
Es stehen zwei Ausgabemodi zur Verfügung:
Normal: die Ausgabe enthält das Banner, liefert vollständige Berichte zu Testfehlern, sendet Warnmeldungen und schreibt eine Zusammenfassung der Ausführung.
Detailedist dasselbe wieNormal, meldet jedoch auchPassed-Tests.
ANSI (Amerikanisches Institut für Normung)
Intern gibt es 2 verschiedene Ausgabeformatierer, die die Terminalfunktion zum Verarbeiten von ANSI-Escapecodes automatisch erkennen.
- Der ANSI-Formatierer wird verwendet, wenn das Terminal die Escapecodes rendern kann.
- Der Nicht-ANSI-Formatter wird verwendet, wenn das Terminal die Escapecodes nicht verarbeiten kann, wenn
--no-ansiverwendet wird oder wenn die Ausgabe umgeleitet wird.
Standardmäßig werden die Funktionen automatisch erkannt.
Fortschritt
Eine Statusanzeige wird in das Terminal geschrieben. Die Statusanzeige zeigt die Anzahl der bestandenen Tests, fehlgeschlagenen Tests und übersprungenen Tests an, gefolgt vom Namen der getesteten Assembly, des Zielframeworks und der Architektur.
Die Fortschrittsanzeige wird basierend auf dem ausgewählten Modus erstellt.
- ANSI, der Fortschrittsbalken wird animiert, bleibt am unteren Bildschirmrand und wird alle 500 ms aktualisiert. Die Statusleiste blendet nach Abschluss der Testausführung aus.
- Nicht-ANSI: die Statusanzeige wird alle 3 Sekunden auf dem Bildschirm geschrieben. Der Fortschritt verbleibt in der Ausgabe.
Direkte Konsolenausgabe und Neuzeichnung der Fortschrittsanzeige
Um den Fortschrittsbalken zu animieren, übernimmt der ANSI-Fortschrittsrenderer die Kontrolle über den Terminalcursor und zeichnet den unteren Bereich des Bildschirms wiederholt neu. Jeder Text, der direkt in stdout oder stderr außerhalb des Erfassungspfads des Testframeworks geschrieben wird, kann während dieses Neuzeichnens überschrieben oder entfernt werden. Beispielsweise kann ein Console.WriteLine-Aufruf aus dem Lebenszykluscode auf Assembly- oder Sitzungsebene (z. B. aus einem Before(Assembly)- oder Before(TestSession)-Hook) oder aus einer Erweiterung kurz aufblinken und dann wieder verschwinden, wenn die Fortschrittsleiste aktualisiert wird.
Dieses Verhalten unterscheidet sich von erfassten Standardausgabe- und Standardfehlern pro Test. Die Ausgaben, die ein Test während der Ausführung erzeugt, werden vom Framework erfasst und gemäß --show-stdout und --show-stderr angezeigt, damit der Fortschrittsbalken sie nicht überschreibt.
Wenn Ihr Code direkt in die Konsole schreiben muss und diese Ausgabe sichtbar bleiben soll, deaktivieren Sie den Fortschritt (--progress off in MTP 2.3.0+ oder --no-progress in früheren Versionen). Alternativ können Sie ANSI (--ansi off in MTP 2.3.0+ oder --no-ansi in früheren Versionen) deaktivieren, um die Nicht-ANSI-Fortschrittsausgabe zu verwenden, bei der neue Zeilen angehängt werden, anstatt die Anzeige an Ort und Stelle neu zu zeichnen, und die die vorherige direkte Ausgabe nicht überschreibt.
Options
| Option | MTP-Version | Description |
|---|---|---|
--no-progress |
— | Deaktiviert die Fortschrittsanzeige am Bildschirm. Veraltet in MTP 2.3.0 zugunsten von --progress off. |
--progress |
2.3.0 | Steuert, ob der Fortschritt angezeigt wird. Gültige Werte sind auto (Standard), on (akzeptiert , trueenable, 1) und off (akzeptiert auch false, , disable0). |
--no-ansi |
— | Deaktiviert die Ausgabe von ANSI-Escapezeichen auf den Bildschirm. |
--ansi |
2.3.0 | Steuert, ob ANSI-Escapezeichen ausgegeben werden. Gültige Werte sind auto (Standard), on (akzeptiert , trueenable, 1) und off (akzeptiert auch false, , disable0). |
--output |
— | Gibt die Ausführlichkeit der Ausgabe beim Melden von Tests an. Gültige Werte sind Normal und Detailed. Der Standardwert ist Normal. |
--show-stdout |
2.2.1 | Bestimmt, wann die erfasste Standardausgabe eines Tests angezeigt werden soll. Gültige Werte sind All, Failedund None. Der Standardwert ist All. |
--show-stderr |
2.2.1 | Bestimmt, wann erfasste Fehlerausgabe eines Tests angezeigt werden soll. Gültige Werte sind All, Failedund None. Der Standardwert ist All. |
--show-flaky-tests |
2.4.0 | Steuert die flaky: Zusammenfassung und die Flaky-Testliste für Tests, die nach einem Wiederholungsversuch bestanden werden. Verwenden on oder off; der Standardwert ist on. Gilt für MSTest [Retry] und die Wiederholungserweiterung. |
Hinweis
Ein Gedankenstrich (—) in der Spalte "MTP-Version " markiert kernige Optionen, die nicht an eine bestimmte Version gebunden sind, da sie seit den ersten Versionen der Plattform verfügbar sind.
Hinweis
Ab MTP 2.3.0 unterdrückt MTP, wenn es erkennt, dass es in einer LLM- oder KI-Tool-Umgebung ausgeführt wird, das Startbanner und ändert die Standardvorgabe für --show-stdout und --show-stderr von All auf Failed, um Rauschen zu reduzieren.