Dane wyjściowe terminalu

Reporter testów terminalu to wbudowana implementacja stanu i raportowania postępu w terminalu (konsoli). Jest to część rdzenia Microsoft. Testing.Platform (MTP) i nie wymaga żadnych dodatkowych pakietów NuGet.

Tryby wyjściowe

Dostępne są dwa tryby wyjściowe:

  • Normal, dane wyjściowe zawierają baner, zgłasza pełne błędy testów, komunikaty ostrzegawcze i zapisuje podsumowanie przebiegu. dane wyjściowe z 1 nieudanym testem i podsumowaniem

  • Detailed, tak samo jak Normal, ale dodatkowo raportuje testy Passed. Wynik: 1 test zakończył się niepowodzeniem, 1 test zakończył się powodzeniem, podsumowanie

ANSI

Wewnętrznie istnieją 2 różne formatery danych wyjściowych, które automatycznie wykrywają możliwość terminalu do obsługi kodów ucieczki ANSI.

  • Formater ANSI jest używany, gdy terminal może renderować kody ucieczki.
  • Formatator inny niż ANSI jest używany, gdy terminal nie może obsłużyć kodów ucieczki, gdy --no-ansi jest używany lub gdy dane wyjściowe są przekierowywane.

Wartością domyślną jest automatyczne wykrywanie możliwości.

Progress

Wskaźnik postępu jest zapisywany w terminalu. Wskaźnik postępu pokazuje liczbę testów zakończonych powodzeniem, testów zakończonych niepowodzeniem i pominiętych testów, a następnie nazwę testowanego zestawu, platformę docelową i architekturę.

pasek postępu z 23 pomyślnie przeprowadzonymi testami, 0 testów nieudanych i 0 pominiętych testów

Pasek postępu jest zapisywany na podstawie wybranego trybu:

  • ANSI, pasek postępu jest animowany, umieszczony na dole ekranu, a odświeżany co 500 ms. Pasek postępu ukrywa się po zakończeniu wykonywania testu.
  • inny niż ANSI, pasek postępu jest zapisywany na ekranie co 3 sekundy. Postęp pozostaje w danych wyjściowych.

Bezpośrednie wyjście konsoli i odświeżanie paska postępu

Aby animować pasek postępu, moduł renderowania postępu ANSI przejmuje kontrolę nad kursorem terminalu i wielokrotnie ponownie rysuje dół ekranu. Każdy tekst zapisany bezpośrednio do stdout lub stderr, poza ścieżką przechwytywania frameworku testowego, może zostać nadpisany lub usunięty podczas tego przerysowywania. Na przykład wywołanie Console.WriteLine z kodu cyklu życia na poziomie zestawu lub sesji (takiego jak hook Before(Assembly) lub Before(TestSession)) albo z rozszerzenia może na krótko mignąć, a następnie zniknąć po odświeżeniu paska postępu.

To zachowanie różni się od przechwytywanego dla każdego testu standardowego wyjścia i standardowego strumienia błędów. Dane wyjściowe, które test zapisuje podczas jego uruchamiania, są przechwytywane przez platformę i wyświetlane zgodnie z --show-stdout i --show-stderr, więc pasek postępu nie zastępuje go.

Jeśli kod musi być zapisywany bezpośrednio w konsoli i potrzebujesz, aby dane wyjściowe pozostały widoczne, wyłącz postęp (--progress off w wersji MTP 2.3.0 lub --no-progress nowszej). Alternatywnie wyłącz interfejs ANSI (--ansi off w wersji MTP 2.3.0 lub --no-ansi nowszej), aby użyć danych wyjściowych postępu innych niż ANSI, które dołącza nowe wiersze zamiast ponownego rysowania na miejscu i nie zastępuje poprzednich danych wyjściowych bezpośrednich.

Opcje

Option Wersja MTP Opis
--no-progress Wyłącza raportowanie postępu na ekranie. Oznaczone jako przestarzałe w MTP 2.3.0 na rzecz --progress off.
--progress 2.3.0 Określa, czy postęp jest wyświetlany. Prawidłowe wartości to auto (wartość domyślna), on (również akceptuje truewartości , enable, 1), i off (również akceptuje falsewartości , disable, 0).
--no-ansi Wyłącza wyprowadzanie znaków ucieczki ANSI na ekranie.
--ansi 2.3.0 Określa, czy znaki ucieczki ANSI są emitowane. Prawidłowe wartości to auto (wartość domyślna), on (również akceptuje truewartości , enable, 1), i off (również akceptuje falsewartości , disable, 0).
--output Określa poziom szczegółowości danych wyjściowych podczas raportowania wyników testów. Prawidłowe wartości to Normal i Detailed. Wartość domyślna to Normal.
--show-stdout 2.2.1 Określa, kiedy pokazać przechwycone standardowe dane wyjściowe testu. Prawidłowe wartości to All, Failed i None. Wartość domyślna to All.
--show-stderr 2.2.1 Określa, kiedy wyświetlać przechwycone komunikaty o błędach podczas testu. Prawidłowe wartości to All, Failed i None. Wartość domyślna to All.
--show-flaky-tests 2.4.0 Steruje podsumowaniem flaky: i listą testów Flaky dla testów, które przechodzą po ponowieniu próby. Użyj wartości on lub off; wartość domyślna to on. Dotyczy biblioteki MSTest [Retry] i rozszerzenia ponawiania.

Uwaga / Notatka

Kreska (—) w kolumnie wersja MTP oznacza podstawowe opcje, które nie są powiązane z określoną wersją, ponieważ były dostępne od początkowych wersji platformy.

Uwaga / Notatka

Od wersji MTP 2.3.0, gdy MTP wykryje, że działa w środowisku narzędzia LLM lub AI, ukrywa baner startowy i zmienia domyślne ustawienie --show-stdout i --show-stderr z All na Failed, aby ograniczyć zbędny szum.