Saya mencari untuk menjalankan tes NUnit otomatis untuk aplikasi C #, setiap malam dan setiap komit ke svn.
Apakah ini sesuatu yang bisa dilakukan Jenkins-CI?
Apakah ada tutorial online atau dokumen panduan yang mendokumentasikan pengaturan serupa yang dapat saya lihat?
c#
continuous-integration
hudson
jenkins
blueberryfields
sumber
sumber
Jawaban:
Saya perlu melakukan apa yang Anda lakukan, berikut cara saya mengatur Jenkins untuk melakukan ini:
Tes dll tunggal:
Beberapa tes dll menggunakan proyek uji NUnit :
Setelah proyek Anda dibuat, NUNit sekarang akan berjalan dan hasilnya akan dapat dilihat di Dasbor (jika Anda mengarahkan kursor ke ikon Laporan cuaca) atau di halaman proyek di bawah Hasil Tes Terakhir .
Anda juga dapat menjalankan perintah dari dalam Visual Studio atau sebagai bagian dari proses pembuatan lokal Anda.
Berikut dua posting blog yang saya gunakan untuk referensi. Saya tidak menemukan apa pun yang benar-benar sesuai dengan persyaratan saya:
Panduan 1 Jam untuk Penyiapan Integrasi Berkelanjutan: Jenkins memenuhi .Net (2011)
Panduan untuk membangun proyek .NET menggunakan Hudson (2008)
sumber
"C:\Program Files (x86)\NUnit 2.6.3\bin\nunit-console-x86.exe" UnitTests/UnitTests.nunit
. Bekerja dengan sempurna untuk saya.Jika Anda tidak ingin membuat hardcode proyek pengujian unit Anda, Anda lebih baik menulis skrip untuk mengambil semua dll proyek Unit Test Anda. Kami melakukannya dengan Powershell dan mengikuti konvensi khusus untuk penamaan Proyek Pengujian Unit kami. Berikut adalah konten file PowerShell yang menjalankan pengujian unit kami:
Skripnya cukup kuat sehingga kami digunakan kembali untuk semua pekerjaan build kami. Jika Anda tidak menyukai jalur lengkap ke konsol NUnit, Anda selalu dapat meletakkan lokasi itu di variabel lingkungan PATH Anda.
Kemudian kami meletakkan file RunUnitTests.ps1 di server build kami dan menggunakan perintah batch ini:
sumber
[string] $sourceDirectory = $(get-location)
dan untuk jalur dengan spasi saya harus mengubah izin perakitan ke nUnit ke$cFiles = $cFiles + '"' + $file + '"' + " "
Untuk Nunit 3 atau lebih tinggi:
Building Step (baris perintah Windows)
"c:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" c:\AutomationTraining\CSharpSelenium\bin\Debug\test.dll --result=TestR.xml;format=nunit2
Langkah posting untuk penerbitan laporan Nunit, ini hanya menunjukkan file hasil tes di direktori ruang kerja Jenkins, bukan di proyek Anda: TestR.xml
Kita perlu membuat hasil tes dalam format nunit2 karena sekarang plugin Jenkins Nunit tidak mengenali format hasil Nunit3. Juga pilihan format string berbeda:
--result=TestR.xml;format=nunit2
NOT/xml=nunit-result.xml
sumber
Ini berfungsi dengan baik, saya telah mengatur ini sebelumnya.
Konfigurasi NUnit untuk mengeluarkan hasil ke file XML dan konfigurasikan Plugin NUnit Jenkins untuk menggunakan file XML ini. Hasilnya akan tersedia di dasbor.
Sekarang, cara Anda memanggil NUnit terserah Anda. Cara kami melakukannya adalah: tugas Jenkins mengeksekusi target NAnt menjalankan rangkaian pengujian NUnit.
Anda dapat mengonfigurasi tugas Jenkins untuk dijalankan pada commit dan / atau dijadwalkan pada waktu tertentu.
sumber
Solusi dari Ralph Willgoss berfungsi dengan baik, tetapi saya mengubah 2 hal untuk menjadikannya hebat:
a) Saya menggunakan proyek NUnit alih-alih file DLL secara langsung. Ini membuatnya lebih mudah untuk menambahkan lebih banyak rakitan atau mengonfigurasi pengujian di GUI NUnit.
b) Saya menambahkan satu baris lagi ke batch untuk mencegah build gagal saat pengujian gagal:
Plugin NUnit yang disebutkan menandai build UNSTABLE secara otomatis, yang persis seperti yang saya inginkan, setiap kali pengujian gagal. Itu terlihat dengan titik kuning.
sumber
Saya pikir lebih baik gagal membangun ketika tidak lulus sehingga Anda tidak menerapkannya. Lakukan sesuatu seperti ini:
Referensi: http://www.greengingerwine.com/index.php/2013/01/tip-check-errorlevel-in-your-post-build-steps-when-using-nunit/
sumber
Jenkins memang memiliki plugin yang akan mendukungnya. Konfigurasi yang tepat akan sedikit bergantung pada penyiapan proyek Anda. Ada plugin khusus untuk nUnit, MSBuild, nAnt dll. Mulailah dengan melihat halaman plugin, tetapi seharusnya tidak terlalu sulit untuk mengetahuinya.
sumber
Ini adalah solusi saya untuk menjalankan OpenCover dengan vstest di Jenkins:
Setiap dll pengujian dijalankan dalam proses sendiri karena kami memiliki masalah untuk menjalankan semua dll pengujian dalam satu proses (masalah dengan pembebanan perakitan).
sumber
Untuk .Net Core, cukup menambahkan langkah build "eksekusi shell" dengan skrip berikut:
Setelah itu tambahkan tindakan pasca-build "Publikasikan laporan hasil pengujian MSTest" untuk membuat hasil pengujian terlihat.
Jalur laporan pengujian default harus
**/*.trx
dan akan menerbitkan semua.trx
file yang dihasilkan .sumber