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

MTP ondersteunt deze uitvoermodi:

  • Minimal rapporteert mislukte resultatenblokken.

  • Normal meldt mislukte en overgeslagen resultaatblokken. Het bevat ook de banner, waarschuwingsberichten en de samenvatting van de uitvoering. uitvoer met 1 mislukte test en een samenvatting

  • Detailed geeft alle resultaatblokken weer. uitvoer met 1 mislukte test en 1 geslaagde test, en een samenvatting

Minimal is beschikbaar vanaf MTP 2.4.

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 — Hiermee geeft u de gedetailleerdheid van de uitvoer voor testresultaten op. Geldige waarden zijn Minimal, Normal en Detailed. De standaardwaarde is Normal. Minimal vereist MTP 2.4 of hoger.
--show-test-results <OUTCOME> 2.4.0 Selecteert resultaatblokken op basis van uitkomst. Gebruik passed, failed, , skipped, of allnone. failed bevat ook fouten, time-outs en annuleringen.
--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.
--show-flaky-tests 2.4.0 Hiermee bepaalt u de flaky: samenvatting en de lijst met flaky tests voor tests die na een nieuwe poging zijn geslaagd. Gebruik on of off; de standaardwaarde is on. Is van toepassing op MSTest [Retry] en de extensie voor opnieuw proberen.
--show-slowest-tests 2.4.0 Geeft het aangevraagde aantal traagste tests in de samenvatting weer. Voor een uitvoering met meerdere modules rapporteert MTP de traagste tests voor elke module.

Combineer passed, faileden skipped met komma's, spaties of herhaalde --show-test-results opties. Combineer none of all niet met een andere waarde. Een expliciete --show-test-results waarde overschrijft de --output voorinstelling, ongeacht de optievolgorde. Het filter wijzigt alleen resultatenblokken; het aantal voortgangs- en samenvattingen blijft ongewijzigd.

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.