Output terminal

Reporter uji terminal adalah implementasi bawaan status dan pelaporan kemajuan ke terminal (konsol). Ini adalah bagian dari inti Microsoft. Testing.Platform (MTP) dan tidak memerlukan paket NuGet tambahan.

Mode keluaran

Ada dua mode output yang tersedia:

  • Normal, output berisi banner, melaporkan kegagalan total pengujian, pesan peringatan, dan menuliskan ringkasan dari eksekusi tersebut. Output dengan 1 pengujian gagal dan ringkasan

  • Detailed, sama seperti Normal tetapi juga melaporkan tes Passed. Output dengan 1 gagal, dan 1 lulus pengujian dan ringkasan

ANSI

Secara internal ada 2 pemformat output berbeda yang secara otomatis mendeteksi kemampuan terminal untuk menangani kode escape ANSI.

  • Formatter ANSI digunakan ketika terminal mampu merender kode escape.
  • Formatter non-ANSI digunakan saat terminal tidak dapat menangani kode escape, saat --no-ansi digunakan, atau saat output dialihkan.

Defaultnya adalah mendeteksi kemampuan secara otomatis.

Progress

Indikator kemajuan ditulis ke terminal. Indikator kemajuan menunjukkan jumlah pengujian yang lulus, pengujian yang gagal, dan pengujian yang dilewati, diikuti dengan nama rakitan yang diuji, kerangka kerja target, dan arsitekturnya.

Bilah kemajuan dengan 23 tes lulus, 0 pengujian gagal, dan 0 pengujian yang dilewati

Bilah kemajuan ditulis berdasarkan mode yang dipilih:

  • ANSI, bilah kemajuan dianimasikan, tetap di bagian bawah layar dan diperbarui setiap 500ms. Bilah kemajuan menghilang setelah eksekusi pengujian selesai.
  • non-ANSI, bilah kemajuan diperbarui ke layar setiap 3 detik. Kemajuan tercermin dalam hasil.

Keluaran konsol langsung dan penyegaran ulang progres

Untuk menganimasikan bilah kemajuan, perender kemajuan ANSI mengontrol kursor terminal dan berulang kali menggambar ulang bagian bawah layar. Teks apa pun yang ditulis langsung ke stdout atau stderr di luar alur penangkapan framework pengujian dapat ditimpa atau dihapus selama penggambaran ulang ini. Misalnya, pemanggilan Console.WriteLine dari kode siklus hidup level assembly atau level sesi (seperti hook Before(Assembly) atau Before(TestSession)), atau dari sebuah ekstensi, mungkin muncul sebentar lalu menghilang saat bilah kemajuan diperbarui.

Perilaku ini berbeda dari output standar per pengujian yang diambil dan kesalahan standar. Keluaran yang dihasilkan oleh pengujian saat berjalan ditangkap oleh framework dan ditampilkan sesuai dengan --show-stdout dan --show-stderr, sehingga bilah progres tidak menimpa keluaran tersebut.

Jika kode Anda harus menulis langsung ke konsol dan Anda memerlukan output tersebut agar tetap terlihat, nonaktifkan kemajuan (--progress off di MTP 2.3.0+, atau --no-progress di versi sebelumnya). Atau, nonaktifkan ANSI (--ansi off di MTP 2.3.0+, atau --no-ansi di versi sebelumnya) untuk menggunakan output progres non-ANSI, yang menambahkan baris baru alih-alih menggambar ulang di tempat dan tidak menimpa output langsung yang sudah ada sebelumnya.

Opsi

Option Versi MTP Deskripsi
--no-progress Menonaktifkan pelaporan kemajuan di layar. Dideprekasi dalam MTP 2.3.0 dan digantikan oleh --progress off.
--progress 2.3.0 Menentukan apakah progres ditampilkan. Nilai yang valid adalah auto (default), on (juga menerima true, , enable), 1dan off (juga menerima false, , disable0).
--no-ansi Menonaktifkan penampilan karakter escape ANSI ke layar.
--ansi 2.3.0 Mengontrol apakah karakter escape ANSI dipancarkan. Nilai yang valid adalah auto (default), on (juga menerima true, , enable), 1dan off (juga menerima false, , disable0).
--output Menentukan verbositas output saat melaporkan pengujian. Nilai yang berlaku adalah Normal atau Detailed. Defaultnya adalah Normal.
--show-stdout 2.2.1 Menentukan kapan menampilkan output standar pengujian yang diambil. Nilai yang valid adalah All, Failed, dan None. Defaultnya adalah All.
--show-stderr 2.2.1 Menentukan kapan menampilkan output error yang ditangkap dari pengujian. Nilai yang valid adalah All, Failed, dan None. Defaultnya adalah All.
--show-flaky-tests 2.4.0 flaky: Mengontrol ringkasan dan daftar pengujian Flaky untuk pengujian yang lulus setelah coba lagi. Gunakan on atau off; defaultnya adalah on. Berlaku untuk MSTest [Retry] dan ekstensi coba lagi.

Note

Tanda hubung (—) di kolom versi MTP menandai opsi inti yang tidak terkait dengan versi tertentu karena telah tersedia sejak rilis awal platform.

Note

Mulai dari MTP 2.3.0, saat MTP mendeteksi bahwa aplikasi ini berjalan di dalam lingkungan alat LLM atau AI, MTP menyembunyikan banner startup dan mengubah nilai default --show-stdout dan --show-stderr dari All menjadi Failed untuk mengurangi gangguan.