Nunit: Melampirkan file ke hasil tes

Dibuat pada 15 Jul 2016  ·  34Komentar  ·  Sumber: nunit/nunit

Halo kawan-kawan,
Saya baru dengan NUnit dan saya bertanya-tanya bagaimana cara menambahkan file lampiran ke output di test explorer.
Dalam pengujian unit, ada metode dalam panggilan kelas TestContext AddResultFile yang dapat melakukan ini.
apakah ada yang bisa membantu saya.

Terima kasih,
raksasa

Epic done feature normal

Komentar yang paling membantu

Fitur ini wajib dimiliki.
Kami menjalankan tes perilaku otomatis kami dengan NUnit dan Selenium. Jika tes gagal, kami senang melampirkan tangkapan layar browser di hasil tes: ini sangat membantu untuk memperbaiki tes.
Untuk melakukan ini, kami harus menggunakan kerangka uji Microsoft, tetapi tidak sekuat NUnit (atribut di tingkat perakitan atau kelas, kelas uji generik ...). Jadi kami menantikan fitur ini di NUnit.

Semua 34 komentar

Metode yang Anda sebutkan adalah bagian dari kelas TestContext dalam kerangka pengujian Microsoft. NUnit juga memiliki kelas dengan nama yang sama, tetapi tidak memiliki hubungan dengan kelas MsTest dan tidak memiliki metode seperti itu. Tidak ada fasilitas di NUnit untuk melampirkan file ke output.

Terima kasih Charlie.
Tetapi apakah metode AddResultFile akan ditambahkan ke NUnit di masa mendatang?
Metode ini sangat membantu.

Tidak ada rencana untuk itu saat ini. Jika Anda ingin mengubah masalah ini menjadi permintaan untuk fitur tersebut, kami dapat melakukannya dan membukanya kembali.

Jika demikian, Anda harus menjelaskan secara lebih rinci bagaimana cara kerjanya. Bagaimana file dibuat, di mana disimpan, dll. Apakah Anda meminta agar NUnit benar-benar membuat file atau hanya menyimpan referensinya?

Tentu saja, kita harus menerima ide itu, memprioritaskannya dan menjadwalkannya untuk beberapa rilis.

Terima kasih atas tanggapan Anda Charly.
Akan lebih bagus jika metode itu ditambahkan ke NUnit.
itu akan bekerja seperti metode AddResultFile dari kelas TestContext dalam kerangka uji Microsoft.
sesuatu seperti menautkan hasil tes (hasil tes file html atau tangkapan layar) ke Test Output di Test Explorer di VS. Anda dapat melihat tangkapan layar seperti di bawah ini.

screenshot

Terima kasih atas idenya. Saya akan membuka kembali ini.

Namun, untuk melangkah lebih jauh, kita harus mencari tahu cara kerjanya untuk NUnit itu sendiri, bukan hanya adaptornya. Saya menandai ini sebagai Ide, yang kami sebut sebagai sesuatu yang tidak didefinisikan dengan cukup baik untuk dipertimbangkan sebagai fitur masa depan. Mungkin orang lain akan datang dengan saran.

Hal-hal yang perlu kita pertimbangkan:

  • Bagaimana ini akan terlihat dalam hasil XML?
  • Bisakah kita mengemas semua ini sedemikian rupa sehingga hasil dan lampirannya tetap bersama?
  • Apa yang akan dilakukan konsol NUnit dengannya, jika ada.
  • Akankah NUnit gui menampilkannya dalam beberapa cara

Fitur ini wajib dimiliki.
Kami menjalankan tes perilaku otomatis kami dengan NUnit dan Selenium. Jika tes gagal, kami senang melampirkan tangkapan layar browser di hasil tes: ini sangat membantu untuk memperbaiki tes.
Untuk melakukan ini, kami harus menggunakan kerangka uji Microsoft, tetapi tidak sekuat NUnit (atribut di tingkat perakitan atau kelas, kelas uji generik ...). Jadi kami menantikan fitur ini di NUnit.

Saya mengubah ini menjadi fitur yang membutuhkan desain, yang lebih solid daripada sebuah ide. Kami masih perlu menyelesaikan pertanyaan yang tercantum dalam komentar saya sebelumnya.

Saya kira itu membuat serial file di xml, atau menyimpan direktori yang direferensikan di sampingnya. Satu mengarah ke xml yang luas, kelambatan umum, dan file yang membutuhkan juru bahasa tertentu, yang lain mengarah ke kemungkinan file dipisahkan dari hasil, dan referensi rusak.

Manakah yang lebih rendah kejahatannya? Saya merasa seperti yang pertama, rasa sakitnya akan lebih besar daripada manfaat menyimpan semuanya dalam paket - dan memiliki tautan relatif 'semoga tersedia' sudah cukup.

  • Apa yang akan dilakukan konsol NUnit dengannya, jika ada.
  • Akankah NUnit gui menampilkannya dalam beberapa cara

Untuk GUI, sesuatu seperti antarmuka di atas terlihat cukup bagus, hanya hyperlink ke file terlampir. Konsol, imo, harus memberi tahu pengguna dalam pesan pengujian gagal bahwa file tersedia, dan lokasinya.

Saya membayangkan ini akan membutuhkan seseorang untuk mengirimkan PR, setelah desainnya selesai - @fredgate , Anda tertarik? 😄

Kita harus melihat bagaimana MSTest menyimpan file. Saya berharap ekstensi Visual Studio memerlukan tautan ke file di drive.

Sepertinya referensi dalam XML adalah cara yang harus dilakukan. Untuk NUnit, lokasi awal logis adalah direktori kerja, di mana XML berjalan secara default. Itu menyelesaikan dua poin pertama saya di atas.

Menjawab poin saya yang lain:

  • Saya kira konsol akan melakukan tidak lebih dari daftar lampiran dengan jalan, seperti halnya untuk hasil.
  • Gui dapat memiliki semacam menu atau panel untuk mencantumkan lampiran. Itu bisa menampilkannya asalkan aplikasi default telah ditentukan untuk jenis file tertentu.

Sepertinya fitur yang bagus, yang saya condongkan untuk dinaikkan ke prioritas normal.

@rprouse Apakah Anda ingat bagaimana Gallio menangani lampiran?

Apa yang perlu disertakan oleh elemen lampiran dalam hal atribut dan elemen? Sesuatu seperti ini?

<attachments>
    <attachment  description="Final screen shot">ScreenShot.jpg</attachment>
    ...
</attachments>

Saya berasumsi itu adalah anak dari tes yang menghasilkannya, jadi kami memiliki info itu. Pengguna mungkin ingin menyertakan beberapa tangkapan layar, oleh karena itu deskripsinya. Ada yang lain?

Apa sintaks untuk melampirkan sesuatu? Haruskah kita menggunakan TestContext? Haruskah ada cara untuk mengaitkannya dengan pernyataan sehingga lampiran dibuat secara otomatis saat gagal?

Apakah seseorang ingin menulis spesifikasi untuk ini?

Sepertinya fitur yang bagus, yang saya condongkan untuk dinaikkan ke prioritas normal.

👍

@rprouse Apakah Anda ingat bagaimana Gallio menangani lampiran?

Tidak, saya tidak pernah menggunakan lampiran. Saya suka format XML Anda. Secara pribadi, saya pikir kita harus mulai dengan menambahkan lampiran dari TestContext karena ini adalah rute yang lebih sederhana. Kami kemudian dapat mengevaluasi apakah kami ingin memperluasnya ke Asserts.

Jadi TestContext.CurrentContext.AddAttachment ?

Dengan kelebihan untuk (string path) dan (string path, string description) ?

Mungkin kita sudah memiliki spek!

Harap tingkatkan prioritas fitur ini. Akan sangat membantu jika ringkasan hasil pengujian kami melampirkan tangkapan layar UI. Apakah lampiran ini tersedia di hasil build di dalam VSTS (Visual Studio Team Services)?
Terima kasih banyak charlie

Saya pikir ini adalah fitur yang bagus dan saya akan menerbitkan lampiran sebagai artefak build di TeamCity

Saya menaikkannya ke prioritas normal karena @rprouse sudah menyarankan itu. Namun perhatikan bahwa item dengan prioritas rendah dan normal terkadang harus menunggu seseorang terinspirasi untuk mengimplementasikannya - baik NUnit committer atau kontributor. Ini lebih merupakan keputusan pribadi daripada keputusan tim tentang kapan itu akan dilakukan.

Saya harap tidak ada yang lupa tentang ini. Itu akan menjadi fitur yang sangat membantu.

Saya pikir komentar sebelumnya menyelesaikan semua masalah desain, jadi saya melepas label desain dan menambahkan masalah implementasi ke Backlog.

Bukannya kita melupakan ini karena kita memiliki banyak hal yang terjadi. Seperti yang saya sebutkan di komentar sebelumnya, item prioritas normal seperti ini tidak dijadwalkan sebagai bagian dari perencanaan rilis kami. Terserah beberapa anggota tim atau kontributor luar untuk cukup tertarik sehingga mereka menerimanya. Mudah-mudahan, menambahkannya ke backlog akan memotivasi seseorang untuk melangkah. Tergantung pada keahlian Anda, itu bisa jadi Anda! 😄

fitur hebat! akan sangat dihargai. semoga ada yang segera menerapkannya

Saya baru saja melakukan PR untuk fungsionalitas kerangka kerja yang diperlukan untuk mengimplementasikan ini, di #2152. Mengingat ada beberapa orang yang melacak masalah ini, saya berencana untuk mengubah masalah ini menjadi dukungan Epic dan track runner, setelah kami memutuskan apa yang harus dilakukan di sana.

Inilah pemikiran saya:

Adaptor VS
Ini adalah fitur yang dimiliki MSTest, jadi kerangka kerja adaptor VS sudah memiliki fungsionalitas untuk menampilkan file terlampir. Hanya perlu melacak cara memasangnya.

Konsol/NUnitLite
Pikiranku campur aduk di sini. Dengan tes Error/Peringatan, masuk akal untuk menunjukkan filepath/deskripsi lampiran dengan hasilnya. Bagaimana dengan lampiran untuk lulus tes? Haruskah kita memiliki output 'Informasi' untuk menunjukkan ini? Jadi pelari konsol akan memiliki tiga jenis output - Informasi/Peringatan/Kesalahan?

GUI/Xamarin
Kedua hal ini pada akhirnya harus mendukung ini, tetapi saya pikir itu bukan prioritas tinggi. Saya akan membuat masalah, tetapi tidak melampirkannya ke Epic ini - itu dapat dilakukan ketika ada permintaan/waktu memungkinkan.

TimKota
@NikolayPianikov - Anda bilang Anda tertarik dengan ini. Mungkin layak untuk Anda lacak #2152. 🙂

Pikiran tentang semua hal di atas? @nunit/framework-tim ? Saya akan membuat masalah individu setelah kami memutuskan langkah selanjutnya.

@ChrisMaddock Masalah dapat menjadi masalah desain juga sehingga Anda dapat melakukan salah satu yang mengatakan "Cari tahu bagaimana mendukung lampiran di gui" - sama untuk orang lain di mana Anda tidak yakin.

Untuk runner konsol, saat ini kami tidak menampilkan semua pengujian, meskipun hal itu dapat dilakukan. Setiap laporan detail dapat ditangani oleh ekstensi atau transformasi XSL khusus. Yang terakhir akan sepele untuk diterapkan bagi siapa saja yang bersedia melakukan pengkodean XSL. Ini bisa menjadi transformasi yang dikontribusikan.

NUnitLite rumit, karena kami ingin membuatnya sangat ringan. Namun, orang berasumsi bahwa pengguna akan memberi nama lampiran mereka dengan cara yang cerdas dan meletakkan semuanya di direktori yang sama, jadi mereka harus cukup mudah ditemukan. Sebenarnya, itu juga berfungsi untuk pelari konsol
Saya pikir hal yang wajar bagi gui adalah menunjukkan nama dan deskripsi lampiran bersama dengan semua hal lain tentang hasil tes. Kita dapat menjadikannya tautan jika pengguna menginstal aplikasi yang sesuai yang akan membuka file.

Setelah kami memiliki lampiran, saya pikir sangat mudah untuk menambahkannya ke hasil yang kami berikan ke Visual Studio dari adaptor.

Saya telah membuat https://github.com/nunit/docs/issues/197 dan https://github.com/nunit/nunit3-vs-adapter/issues/332 untuk membahas langkah selanjutnya.

Mengenai dukungan pelari - jika satu-satunya panggilan saat ini untuk ini adalah integrasi dengan adaptor VS, saya cenderung hanya mengimplementasikannya di sana, untuk saat ini. Ini adalah fitur yang lebih cocok dengan pelari grafis, kemudian cli - dan dukungan pelari lainnya selalu dapat ditambahkan di masa mendatang, jika orang membutuhkannya.

@ChrisMaddock Saya ingin melihat dukungan lampiran dari pelari konsol.

@kdubau - waktu yang tepat! Dalam hal ini, seperti apa yang Anda inginkan? Apa yang akan menjadi kasus penggunaan Anda?

Saya bisa membayangkan menambahkan blok teks 'lampiran' untuk menguji kegagalan/peringatan, deskripsi daftar, dan jalur file. Salah satu alasan saya berdebat untuk tidak melakukan ini, adalah karena saya tidak yakin banyak pengguna ingin menyalin/menempel jalur file dari shell mereka, untuk menemukan file masing-masing. Apakah Anda tidak setuju?

Masalah lain yang perlu dipikirkan, adalah bahwa konsol saat ini hanya menampilkan tes yang gagal/peringatan, dan tidak semua tes. Haruskah kita membuat daftar hasil ketiga ('Informasi'?) yang menunjukkan semua lulus-tes-dengan-lampiran?

Mungkin tidak apa-apa jika konsol runner hanya menampilkan lampiran untuk pengujian yang gagal, karena mungkin hanya itu yang menarik dalam menjalankan konsol. Saya membayangkan file log yang relevan untuk kegagalan di sini, dan semacamnya.

@kdubau Daripada menjelaskannya di sini, saya sarankan Anda membuat masalah baru di repo nunit-console.

@ChrisMaddock @CharliePoole Saya mungkin salah memahami konteksnya di sini. Saya hanya tertarik agar lampiran direferensikan dalam output XML - tidak perlu benar-benar menampilkan informasi lampiran di output konsol. Kasus penggunaan saya adalah agar sistem CI saya (Layanan Tim Visual Studio) dapat mengunggah lampiran yang tercantum dalam XML sebagai artefak build (jadi itu hanya perlu referensi ke file di disk lokal).

Saya khawatir menjalankan tes melalui pelari konsol tidak akan memiliki lampiran dalam XML, tetapi setelah membaca lebih lanjut, saya rasa ini bukan pertanyaannya. Tolong koreksi saya jika saya salah :)

@kdubau - Anda benar. #2152 baru saja digabungkan, yang mendukung lampiran dalam hasil xml. Jika semuanya berjalan sesuai rencana, itu akan menjadi bagian dari NUnit 3.7, yang dirilis minggu depan.

Benar... jika kita membutuhkan "dukungan" di konsol, itu berarti melakukan sesuatu yang lebih dari sekadar menyimpan XML yang berasal dari kerangka kerja. Dalam kasus adaptor nunit3, saya kira @ChrisMaddock mendefinisikan apa artinya itu.

Hai teman-teman, apakah pekerjaan ini sudah selesai atau lebih tertunda? Saya tidak dapat menemukan masalah terbuka atau PR yang terkait dengannya.

Maaf jika saya kehilangan sesuatu tetapi lampiran pengujian saya masih tidak muncul di VS Test Explorer seperti yang saya harapkan. Saya menggunakan NUnit3TestAdapter 3.8.0 dari NuGet dan API TestContext.AddTestAttachement(file) tetapi saya tidak melihat lampiran di Test Explorer. Saya mengharapkan sesuatu seperti ini:

image

Apakah ekspektasi saya salah?

@kdubau - Tidak, ini harus dirilis di NUnit v3.7 dan NUnit3TestAdapter 3.8. Lihat https://github.com/nunit/nunit3-vs-adapter/issues/332 untuk implementasinya. Masalah ini tetap terbuka karena saya masih belum sempat menambahkan dua kalimat dokumentasi yang diperlukan...

Jika tidak berfungsi, pertama-tama saya akan menjalankan pengujian Anda di konsol NUnit - dan melihat apakah lampiran Anda direkam dengan benar di file xml hasil. Jika tidak, buka masalah di repo ini, jika ya, buka masalah di repo adaptor, dan kami dapat menyelidiki lebih lanjut. 🙂

@ChrisMaddock oke, masalah dibuat https://github.com/nunit/nunit3-vs-adapter/issues/373

Berkat motivasi dari @kdubau , akhirnya saya bisa mendokumentasikan fitur ini, dan bisa menutup Epic ini. 😄

Apakah halaman ini membantu?
0 / 5 - 0 peringkat