Terminalutdata

Terminaltestreportern är den inbyggda implementeringen av status- och förloppsrapportering till terminalen (konsolen). Det är en del av kärnan Microsoft. Testing.Platform (MTP) och kräver inga ytterligare NuGet-paket.

Utdatalägen

Det finns två tillgängliga utdatalägen:

  • Normal innehåller utdata med banderoll, rapporterar fullständiga fel i tester, varningsmeddelanden och skriver en sammanfattning av körningen. resultat med ett misslyckat test och en sammanfattning

  • Detailed, samma som Normal men rapporterar även Passed tester. utdata med 1 misslyckat och 1 godkänt test samt en sammanfattning

ANSI (American National Standards Institute)

Internt finns det två olika utdataformaterare som automatiskt identifierar terminalfunktionen för att hantera ANSI-undantagskoder.

  • ANSI-formaterare används när terminalen kan återge escape-koderna.
  • Icke-ANSI-formaterare används när terminalen inte kan hantera escape-koderna, när --no-ansi används eller när utdata omdirigeras.

Standardvärdet är att automatiskt identifiera funktionerna.

Progress

En förloppsindikator skrivs till terminalen. Förloppsindikatorn visar antalet godkända tester, misslyckade tester och överhoppade tester, följt av namnet på den testade sammansättningen, dess målramverk och arkitektur.

En förloppsindikator med 23 godkända tester, 0 misslyckade tester och 0 överhoppade tester

Förloppsindikatorn skrivs baserat på det valda läget:

  • ANSI, förloppsindikatorn är animerad och håller sig längst ned på skärmen och uppdateras var 500:e minut. Förloppsindikatorn döljs när testkörningen är klar.
  • icke-ANSI, förloppsindikatorn skrivs till skärmen var tredje sekund. Utvecklingen finns kvar i resultatet.

Direkt konsolutdata och omritning av förloppsindikatorn

För att animera förloppsindikatorn tar ANSI-förloppsåtergivningen kontroll över terminalmarkören och ritar om skärmens nederkant upprepade gånger. All text som skrivs direkt till stdout eller stderr utanför testramverkets sökväg för utdatafångst kan skrivas över eller tas bort under denna omritning. Till exempel kan ett Console.WriteLine-anrop från livscykelkod på sammansättnings- eller sessionsnivå (till exempel en Before(Assembly)- eller Before(TestSession)-hook), eller från ett tillägg, blinka till kort och sedan försvinna när förloppsfältet uppdateras.

Det här beteendet skiljer sig från insamlade standardutdata och standardfel per test. Utdata som ett test genererar medan det körs fångas upp av ramverket och visas enligt --show-stdout och --show-stderr, så att förloppsindikatorn inte skriver över den.

Om koden måste skriva direkt till konsolen och du behöver att dessa utdata förblir synliga, inaktiverar du förloppsvisning (--progress off i MTP 2.3.0+ eller --no-progress i tidigare versioner). Du kan också inaktivera ANSI (--ansi off i MTP 2.3.0+, eller --no-ansi i tidigare versioner) för att använda utdata som inte är ANSI-förlopp, som lägger till nya rader i stället för att rita om på plats och inte skriver över tidigare direktutdata.

Alternativ

Alternativ MTP-version Description
--no-progress Inaktiverar förloppsrapportering på skärmen. Inaktuell i MTP 2.3.0 till förmån för --progress off.
--progress 2.3.0 Anger om förlopp visas. Giltiga värden är auto (standard), on (accepterar trueockså , enable, 1), och off (accepterar falseockså , disable, 0).
--no-ansi Inaktiverar utskrift av ANSI-escape-tecknen på skärmen.
--ansi 2.3.0 Styr om ANSI-escape-tecken genereras. Giltiga värden är auto (standard), on (accepterar trueockså , enable, 1), och off (accepterar falseockså , disable, 0).
--output Anger utdataverositeten när du rapporterar tester. Giltiga värden är Normal och Detailed. Standard är Normal.
--show-stdout 2.2.1 Avgör när du ska visa insamlade standardutdata för ett test. Giltiga värden är All, Failed och None. Standard är All.
--show-stderr 2.2.1 Avgör när det ska visas insamlade felutdata för ett test. Giltiga värden är All, Failed och None. Standard är All.

Anmärkning

Ett bindestreck (—) i MTP-versionskolumnen markerar kärnalternativ som inte är knutna till en specifik version eftersom de har varit tillgängliga sedan plattformens första versioner.

Anmärkning

Från och med MTP 2.3.0, när MTP upptäcker att det körs i en LLM- eller AI-verktygsmiljö, döljer det startbannern och ändrar standardvärdet för --show-stdout och --show-stderr från All till Failed för att minska bruset.