Terminaluitvoer

De terminaltestrapporter is de ingebouwde implementatie van status- en voortgangsrapportage naar de terminal (console). Het maakt deel uit van de kern Microsoft. Testing.Platform (MTP) en vereist geen extra NuGet-pakketten.

Uitvoermodi

Er zijn twee uitvoermodi beschikbaar:

  • Normal, de uitvoer bevat de banner, rapporteert volledige testfouten, waarschuwingsberichten, en schrijft de samenvatting van de uitvoering. uitvoer met 1 mislukte test en een samenvatting

  • Detailed, hetzelfde als Normal, maar rapporteert ook Passed tests. uitvoer met 1 mislukte test en 1 geslaagde test, en een samenvatting

American National Standards Institute (ANSI)

Intern zijn er 2 verschillende uitvoerformatteerders die de terminalcapaciteit automatisch detecteren voor het afhandelen van ANSI-escapecodes.

  • De ANSI-formatter wordt gebruikt wanneer de terminal de escape-codes kan weergeven.
  • De niet-ANSI-formatter wordt gebruikt wanneer de terminal de escape-codes niet kan verwerken, wanneer --no-ansi deze wordt gebruikt of wanneer uitvoer wordt omgeleid.

De standaardinstelling is om de mogelijkheden automatisch te detecteren.

Progress

Er wordt een voortgangsindicator naar de terminal geschreven. De voortgangsindicator toont het aantal geslaagde tests, mislukte tests en overgeslagen tests, gevolgd door de naam van de geteste assembly, het doelframework en de architectuur.

Een voortgangsbalk met 23 geslaagde tests, 0 mislukte tests en 0 overgeslagen tests

De voortgangsbalk wordt geschreven op basis van de geselecteerde modus:

  • ANSI, de voortgangsbalk is geanimeerd, blijft onder aan het scherm hangen en wordt elke 500 ms vernieuwd. De voortgangsbalk wordt verborgen zodra de testuitvoering is voltooid.
  • niet-ANSI, de voortgangsbalk wordt elke 3 seconden zonder wijzigingen naar het scherm geschreven. De voortgang blijft in de uitvoer.

Uitvoer en voortgang van de directe console opnieuw tekenen

Als u de voortgangsbalk wilt animeren, heeft de ANSI-voortgangsweergave de controle over de terminalcursor en wordt de onderkant van het scherm herhaaldelijk opnieuw getekend. Tekst die rechtstreeks naar stdout of stderr buiten het opnamepad van het testframework wordt geschreven, kan tijdens deze hertekening worden overschreven of verwijderd. Een Console.WriteLine-aanroep uit levenscycluscode op assembly- of sessieniveau (zoals een Before(Assembly)- of Before(TestSession)-hook), of uit een extensie, kan bijvoorbeeld kort oplichten en vervolgens verdwijnen wanneer de voortgangsbalk wordt vernieuwd.

Dit gedrag verschilt van vastgelegde standaarduitvoer per test en standaardfout. Uitvoer die een test tijdens het uitvoeren wegschrijft, wordt door het framework vastgelegd en weergegeven volgens --show-stdout en --show-stderr, zodat deze niet door de voortgangsbalk wordt overschreven.

Als uw code rechtstreeks naar de console moet schrijven en u deze uitvoer nodig hebt om zichtbaar te blijven, schakelt u de voortgang--progress off (in MTP 2.3.0+ of --no-progress in eerdere versies) uit. U kunt OOK ANSI (--ansi off in MTP 2.3.0+ of --no-ansi in eerdere versies) uitschakelen om de niet-ANSI-voortgangsuitvoer te gebruiken, waarmee nieuwe regels worden toegevoegd in plaats van opnieuw te tekenen en geen eerdere directe uitvoer wordt overschreven.

Opties

Optie MTP-versie Description
--no-progress Hiermee schakelt u de voortgang van de rapportage uit op het scherm. Afgeschaft in MTP 2.3.0 ten gunste van --progress off.
--progress 2.3.0 Hiermee bepaalt u of de voortgang wordt weergegeven. Geldige waarden zijn auto (standaard), on (ook accepteren true, enable, 1), en off (ook accepteren false, disable, 0).
--no-ansi Schakelt het weergeven van ANSI-escapetekens op het scherm uit.
--ansi 2.3.0 Hiermee bepaalt u of ANSI-escapetekens worden verzonden. Geldige waarden zijn auto (standaard), on (ook accepteren true, enable, 1), en off (ook accepteren false, disable, 0).
--output Specificeert de uitgebreidheid van de uitvoer bij het rapporteren van tests. Geldige waarden zijn Normal en Detailed. De standaardinstelling is Normal.
--show-stdout 2.2.1 Bepaalt wanneer vastgelegde standaarduitvoer van een test moet worden weergegeven. Geldige waarden zijn All, Failed en None. De standaardinstelling is All.
--show-stderr 2.2.1 Bepaalt wanneer de vastgelegde foutuitvoer van een test moet worden weergegeven. Geldige waarden zijn All, Failed en None. De standaardinstelling is All.

Note

Een streepje (—) in de kolom MTP-versie markeert de kernopties die niet zijn gekoppeld aan een specifieke versie, omdat deze beschikbaar zijn sinds de eerste releases van het platform.

Note

Vanaf MTP 2.3.0, wanneer MTP detecteert dat het wordt uitgevoerd in een LLM- of AI-hulpprogrammaomgeving, onderdrukt het de opstartbanner en verandert de standaardinstelling van --show-stdout en --show-stderr van All om Failed ruis te verminderen.