NUnit tidak menjalankan kode Visual Studio 2010

98

Saya mencoba memuat dll Visual Studio 2010 beta ke dalam NUnit GUI. Saya mendapatkan kesalahan popup.

Rakitan ini dibuat dengan runtime yang lebih baru daripada runtime yang saat ini dimuat dan tidak dapat dimuat. Anda mungkin mencoba memuat rakitan build dengan versi CLR yang lebih baru daripada versi NUnit yang saat ini berjalan.

Bagaimana cara memaksa executable untuk dijalankan di bawah .NET 4?

Bola
sumber
Apakah pertanyaan ini sebenarnya terkait dengan kode VS 2010 atau .NET 4? - Saya mencari alat yang memungkinkan saya menjalankan tes NUNIT pada Visual Studio 2010, dan pertanyaan ini menyesatkan.
Nicolas Irisarri
@Nicolas - mengacu pada .NET 4.0.
Daniel A. White

Jawaban:

132

Saya telah mengunduh sumber NUnit 2.5 dan membuka solusi VS2008 dalam VS2010 beta. Setelah konversi selesai saya membuka semua proyek dan mengubah pengaturan kerangka kerja target untuk semua proyek menjadi ".NET Framework 4.0". Saya kemudian membangun solusi tanpa kesalahan. Sekarang saya dapat menggunakan aplikasi NUnit GUI untuk menjalankan tes yang dibuat untuk .NET 4.0. Saya belum melakukan pengujian menyeluruh untuk build ini sehingga mungkin ada masalah, tetapi untuk tujuan saya ini berfungsi dengan baik.

Pembaruan: Tidak perlu membangun kembali NUnit. Saya menemukan bahwa jika Anda menambahkan berikut ini ke file konfigurasi NUnit yang relevan, Anda dapat menjalankan dll uji yang dibuat untuk .NET 4.0.

Di bawah <configuration> tambahkan:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

dan di bawah <runtime> tambahkan:

<loadFromRemoteSources enabled="true" />
Charles Cook
sumber
3
Oke, pembaruan konfigurasi membuatnya berfungsi, tetapi saya harus menggunakan version = "v4.0.21006" untuk tag requiredRuntime saya.
mkmurray
4
BTW, lokasi default dari file konfigurasi adalah: C: \ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config Menambahkan opsi tersebut ke konfigurasi berhasil untuk saya.
Brad Irby
2
Tidak bisa membuatnya bekerja dengan Nunit + .net4 RTM terbaru. Saya menambahkan entri yang disarankan ke nunit-console.exe.config tetapi saya mendapatkan: System.ArgumentException: Kerangka kerja net-4.0 tidak tersedia Dicoba dengan versi di atas + v4.0.30319 Saya menjalankan 2008 R2 x64
Andreas Öhlund
1
Untuk konsol runner, ubah konfigurasi seperti yang disebutkan, tetapi menggunakan v4.0.30319 untuk versi RTM .NET 4.0. Juga, jalankan dengan argumen baris perintah ini: /framework=4.0.30319
Lance Fisher
1
Saya beruntung menggunakan opsi baris perintah /framework:net-4.0.30319 alih-alih mengubah konfigurasi. Ini sangat membantu sehingga saya dapat mengontrol aplikasi mana yang menggunakan CLR 4.0 dan mana yang tidak.
Kevin Crowell
25

Dengan .NET 4 dirilis, saya menggunakan

<supportedRuntime version="v4.0.30319" />

di NUnit 2.5.4 exe.config alih-alih requiredRuntime, dan tag loadFromRemoteResources seperti yang ditunjukkan di atas dan semuanya bekerja dengan baik. Terima kasih!

pelazem
sumber
17

Anda tidak perlu mengubah file apa pun

cukup buka file ini dan semuanya akan berfungsi dengan baik

C: \ Program Files (x86) \ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-x86.exe

orang Negro
sumber
Terima kasih - memecahkan kasus saya. Harus menggunakan versi x86 dari nunit untuk pengujian unit yang dikompilasi x86. Peringatan versi CLR sangat mengganggu. Menggunakan nunit 2.5.10.
Nigel Touch
Sama di sini, entah bagaimana harus menggunakan versi x86
gavin
12

Di NUnit 2.5.5 Anda dapat menentukan di baris perintah opsi /framework=net-4.0 dan ini kompatibel dengan rakitan baru yang dibuat dengan rilis VS2010 terbaru.

Cristian T
sumber
3
Saya tidak pernah bisa membuat ini bekerja. Saya telah melihat orang-orang menggunakan /framework:net-4.0.30319 dan berbagai variasi lainnya. Akan lebih baik jika mereka menyertakan opsi sebenarnya di dokumen situs.
Jason Short
2
@Jason Tampaknya ini hanya berfungsi pada versi konsol. Versi GUI tidak memiliki opsi ini.
Roman Starkov
1 untuk menyebutkan bahwa ini berfungsi mulai dari versi 2.5.5! Saya meminta NUnit melempar ArgumentExceptions dan NullReferenceExceptions di salah satu mesin saya, dan ternyata itu karena versi 2.5.0.
realMarkusSchmidt
2

Solusi yang diusulkan bekerja sangat baik untuk menjalankan NUnit. Sayangnya, ketika saya sampai pada langkah cakupan kode saya, NCover mulai memberi saya:

Proses profil dihentikan. Koneksi profiler tidak dibuat.

Solusi terbaik yang saya temukan untuk ini adalah dengan hanya menggunakan NUnit versi "-x86" dengan NCover:

NCover.Console.exe nunit-console-x86.exe --param tambahan--

Bekerja sekarang.

Scott Marlowe
sumber
1
Terima kasih untuk ini, saya mengalami masalah yang sama, perbaikan Anda menyelesaikannya!
CubanX
2

Untuk mengetahui versi .net 4 Anda dari Visual [C # 2010 Express, atau yang mana pun], buka "Tentang" aplikasi Visual di bawah item Bantuan menu. Ini akan muncul sebagai versi di bawah baris Microsoft .NET Framework di sisi kanan atas jendela.

Dan Paden
sumber
1

Saya menemukan pesan kesalahan yang sama saat menjalankan NUnit 2.4.8. Karena saya belum memutakhirkan dalam beberapa waktu, saya menginstal NUnit saat ini (v2.5.9) dan menemukan bahwa sekarang mendukung rakitan VS2010. Jadi jika Anda baru saja menemukan kesalahan ini, periksa versi NUnit Anda : per Desember 2010 (atau lebih) satu - satunya hal yang perlu Anda lakukan adalah memutakhirkan NUnit.

Michael Sorens
sumber
Saya menjalankan NUnit 2.5.9 yang diunduh pada 15/03/2011 dan masalah ini tidak akan hilang begitu saja bagi saya. Bahkan jika saya mencoba solusi yang diusulkan
DrLazer
1

Mulai NUnit 2.5.10 Anda dapat mengaktifkan dukungan studio visual di pelari GUI:

Alat-> Pengaturan-> Dukungan IDE

Setelah itu saya berhasil melampirkan ke proses nunit-agent.exe yang menjalankan perakitan Anda di domain aplikasi .NET 4.0

Jagoan
sumber
0

Jika Anda mengalami masalah ini setelah memutakhirkan ke nunit 2.5.5 maka Anda perlu memutakhirkan nant ke versi terbaru bagi saya itu .91 alpha.

Adam
sumber
0

Saya merasa berguna untuk memulai dari Template Aplikasi NUnit . Ini mendukung VS C # Express, memungkinkan tes debugging dan berisi NUnit yang telah dikompilasi untuk .NET 4.0. Terima kasih kepada penulis, proyek uji baru siap dengan satu klik.

Ernest
sumber