Setiap panggilan dalam pengujian unit saya ke salah satu Debug.Write(line)
atau Console.Write(Line)
hanya dilewati saat debugging dan hasilnya tidak pernah dicetak. Panggilan ke fungsi ini dari dalam kelas yang saya gunakan berfungsi dengan baik.
Saya memahami bahwa pengujian unit dimaksudkan untuk dilakukan secara otomatis, tetapi saya masih ingin dapat mengeluarkan pesan dari pengujian unit.
Saya juga mencoba untuk mendapatkan Debug atau Trace atau Console atau TestContext untuk bekerja dalam pengujian unit.
Tak satu pun dari metode ini yang tampak berfungsi atau menampilkan keluaran di jendela keluaran:
Visual Studio 2012 dan yang lebih baru
(dari komentar) Dalam Visual Studio 2012, tidak ada ikon. Sebagai gantinya, ada tautan dalam hasil pengujian yang disebut Output . Jika Anda mengklik link tersebut, Anda akan melihat semua file
WriteLine
.Sebelum Visual Studio 2012
Saya kemudian melihat di jendela Hasil Tes saya , setelah menjalankan tes, di sebelah lingkaran hijau kecil yang sukses , ada ikon lain. Saya klik dua kali lipat. Itu adalah hasil tes saya, dan itu termasuk semua jenis garis tulis di atas.
sumber
Di Visual Studio 2017, Anda dapat melihat output dari test explorer.
1) Dalam metode pengujian Anda, Console.WriteLine ("sesuatu");
2) Jalankan tes.
3) Di jendela Test Explorer, klik Passed Test Method.
4) Dan klik tautan "Output".
Dan klik "Output", Anda dapat melihat hasil Console.Writeline ().
sumber
Console.WriteLine
juga tidak terlihat di panel Keluaran di bawah "Tes".Itu tergantung pada pelari pengujian Anda ... misalnya, saya menggunakan xUnit , jadi jika itu yang Anda gunakan, ikuti petunjuk ini:
https://xunit.github.io/docs/capturing-output.html
Metode ini mengelompokkan keluaran Anda dengan setiap pengujian unit tertentu.
Ada metode lain yang tercantum di tautan yang saya berikan untuk menulis ke jendela Output Anda, tetapi saya lebih suka yang sebelumnya.
sumber
Saya pikir itu masih aktual.
Anda dapat menggunakan paket NuGet ini: Bitoxygen.Testing.Pane
Panggil metode WriteLine kustom dari pustaka ini. Ini membuat panel Pengujian di dalam jendela Output dan menempatkan pesan di sana selalu (selama setiap pengujian, ini berjalan secara independen dari tanda DEBUG dan TRACE).
Untuk membuat penelusuran lebih mudah, saya dapat merekomendasikan untuk membuat kelas dasar:
sumber
Could not load file or assembly 'Microsoft.VisualStudio.Shell.12.0,
Coba gunakan:
Console.WriteLine()
Panggilan ke
Debug.WriteLine
hanya akan dilakukan selama DEBUG ditentukan.Saran lain adalah untuk digunakan:
Trace.WriteLine
juga, tetapi saya belum mencobanya.Ada juga opsi (tidak yakin apakah Visual Studio 2008 memilikinya), tetapi Anda masih dapat menggunakan
Debug.WriteLine
saat Anda menjalankan tes denganTest With Debugger
opsi di IDE.sumber
Dipecahkan dengan contoh berikut:
Setelah menjalankan tes ini, di bawah 'Test Passed', ada opsi untuk melihat output, yang akan memunculkan jendela output.
sumber
Itu memang tergantung pada pelari tes seperti yang disebutkan @jonzim. Untuk NUnit 3 saya harus menggunakan
NUnit.Framework.TestContext.Progress.WriteLine()
untuk menjalankan output di jendela Output Visual Studio 2017.NUnit menjelaskan caranya: di sini
Menurut pemahaman saya, ini berkisar pada paralelisasi tambahan dari eksekusi uji yang telah diterima pelari uji.
sumber
Saya tidak mendapatkan output ketika pengaturan Test / Test Settings / Default Processor Architecture dan rakitan yang direferensikan oleh proyek pengujian saya tidak sama. Jika tidak Trace.Writeline () berfungsi dengan baik.
sumber
Console.WriteLine tidak akan berfungsi. Hanya Debug.WriteLine () atau Trace.WriteLine () yang akan berfungsi, dalam mode debug.
Saya melakukan hal berikut: termasuk menggunakan System.Diagnostics dalam modul uji. Kemudian, gunakan Debug.WriteLine untuk keluaran saya, klik kanan pada pengujian , pilih Debug Selected Tests . Output hasil sekarang akan muncul di jendela Output di bawah ini. Saya menggunakan Visual Studio 2017 vs 15.8.1, dengan kerangka kerja pengujian unit default VS menyediakan.
sumber
Apakah Anda yakin Anda menjalankan pengujian unit Anda di Debug? Debug.WriteLine tidak akan dipanggil dalam build Rilis.
Dua opsi untuk dicoba adalah:
Trace.WriteLine (), yang dibangun ke dalam build rilis serta debug
Batalkan definisi DEBUG di setelan build Anda untuk pengujian unit
sumber
Saya menggunakan xUnit jadi inilah yang saya gunakan:
PS: Anda juga bisa menggunakan
Debugger.Break();
, jadi Anda bisa melihat login Andaout
.sumber
out
"?Varian lain dari penyebab / solusi:
Masalah saya adalah bahwa saya tidak mendapatkan keluaran karena saya menulis hasil yang ditetapkan dari panggilan LINQ asinkron ke konsol dalam satu lingkaran dalam konteks asinkron:
Sehingga pengujian tidak menulis ke konsol sebelum objek konsol dibersihkan oleh runtime (saat menjalankan hanya satu pengujian).
Solusinya adalah mengonversi kumpulan hasil ke daftar terlebih dahulu, jadi saya bisa menggunakan versi non-asinkron forEach ():
sumber
Di VS 2019
View
->Test Explorer
additional output
tautan seperti yang terlihat pada gambar di bawah.Kamu bisa memakai:
semua akan masuk ke jendela keluaran tambahan.
sumber
Trace.WriteLine
seharusnya berfungsi asalkan Anda memilih output yang benar (dropdown berlabel "Show output from" ditemukan di jendela Output ).sumber