NUnit, Visual Studio 2010 kodunu çalıştırmıyor


98

NUnit GUI'ye bir Visual Studio 2010 beta dll yüklemeye çalışıyorum. Bir açılır pencere hatası alıyorum.

Bu derleme, şu anda yüklü olan çalışma zamanından daha yeni bir çalışma zamanı tarafından oluşturulur ve yüklenemez. NUnit'in şu anda çalıştığı sürümden daha sonraki bir CLR sürümüyle bir derleme derlemesi yüklemeye çalışıyor olabilirsiniz.

Bir yürütülebilir dosyayı .NET 4 altında çalışmaya nasıl zorlarım?


Bu soru aslında VS 2010 veya .NET 4 koduyla mı ilgili? - Visual Studio 2010'da NUNIT testleri çalıştırmama izin veren bir araç arıyorum ve bu soru yanıltıcıydı.
Nicolas Irisarri

@Nicolas - .NET 4.0'a atıfta bulunuyor.
Daniel A. White

Yanıtlar:


132

NUnit 2.5 kaynağını indirdim ve VS2010 beta sürümünde VS2008 çözümünü açtım. Dönüşüm bittiğinde tüm projeleri açtım ve tüm projeler için hedef çerçeve ayarını ".NET Framework 4.0" olarak değiştirdim. Daha sonra çözümü hatasız bir şekilde oluşturdum. Artık .NET 4.0 için oluşturulmuş testleri çalıştırmak için NUnit GUI uygulamasını kullanabilirim. Bu yapının kapsamlı testlerini yapmadım, bu yüzden sorunlar olabilir, ancak amaçlarım için iyi çalışıyor.

Güncelleme: NUnit'i yeniden oluşturmak gerekli değildir. Aşağıdakileri ilgili NUnit yapılandırma dosyasına eklerseniz .NET 4.0 için oluşturulmuş bir test dll'sini çalıştırabileceğinizi keşfettim.

<Yapılandırma> altında şunu ekleyin:

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

ve <runtime> altında şunu ekleyin:

<loadFromRemoteSources enabled="true" />

3
Tamam, yapılandırma güncellemeleri çalışmasını sağlıyor, ancak gerekliRuntime etiketim için version = "v4.0.21006" kullanmak zorunda kaldım.
mkmurray

4
BTW, yapılandırma dosyasının varsayılan konumu: C: \ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config Bu seçenekleri benim için çalışan yapılandırmaya eklemek.
Brad Irby

2
Bu, en son Nunit + .net4 RTM ile çalışması sağlanamadı. Önerilen girişleri nunit-console.exe.config dosyasına ekledim ancak şunu elde ediyorum: System.ArgumentException: net-4.0 çerçevesi mevcut değil Yukarıdaki sürümlerle denendi + v4.0.30319 2008 R2 x64 çalıştırıyorum
Andreas Öhlund

1
Konsol çalıştırıcısı için yapılandırmaları belirtildiği gibi değiştirin, ancak .NET 4.0'ın RTM sürümü için v4.0.30319'u kullanın. Ayrıca, şu komut satırı bağımsız değişkeniyle çalıştırın: /framework=4.0.30319
Lance Fisher

1
Yapılandırmayı değiştirmek yerine /framework:net-4.0.30319 komut satırı seçeneğini kullanma şansım oldu. Bu yardımcı oldu, böylece hangi uygulamaların 4.0 CLR'yi kullandığını ve hangilerinin kullanmadığını kontrol edebildim.
Kevin Crowell

25

Yayınlanan .NET 4 ile birlikte

<supportedRuntime version="v4.0.30319" />

NUnit 2.5.4 exe.config yerine requiredRuntime ve loadFromRemoteResources etiketinde yukarıda gösterildiği gibi ve hepsi iyi çalıştı. Teşekkürler!


17

Herhangi bir dosyayı değiştirmenize gerek yok

sadece bu dosyayı açın ve her şey yolunda gidecek

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


Teşekkür ederim - davamı çözdüm. X86 derlenmiş birim testleri için nunit'in x86 sürümünü kullanmalısınız. CLR versiyon uyarıları kırmızı ringa balığı idi. Nunit kullanımı 2.5.10.
Nigel Touch

Aynı burada, bir şekilde x86 sürümünü kullanmak zorunda
gavin

12

In NUnit 2.5.5 Komut satırında seçenek belirtebilirsiniz /framework=net-4.0 ve son VS2010 sürümü ile oluşturulan yeni meclisleri ile uyumludur.


3
Bunu asla çalıştıramadım. İnsanların /framework:net-4.0.30319 ve diğer birçok varyasyonu kullandığını gördüm. Site belgelerine gerçek seçenekleri dahil etseler iyi olurdu.
Jason Short

2
@Jason Görünüşe göre bu sadece konsol versiyonunda çalışıyor. GUI sürümünde bu seçenek yoktur.
Roma Starkov

Bunun 2.5.5 sürümünden itibaren çalıştığını belirttiğimiz için +1! Makinelerimden birinde NUnit'in ArgumentExceptions ve NullReferenceExceptions fırlatması vardı ve bunun 2.5.0 sürümünden kaynaklandığı ortaya çıktı.
realMarkusSchmidt

2

Önerilen çözüm, NUnit'i çalıştırmak için harika çalıştı. Ne yazık ki, kod kapsama adımıma geldiğimde, NCover bana şunları vermeye başladı:

Profilli işlem sonlandırıldı. Profiler bağlantısı kurulmadı.

Buna bulduğum en iyi çözüm, NCover ile NUnit'in "-x86" sürümünü kullanmaktı:

NCover.Console.exe nunit-console-x86.exe --ek parametreler--

Şimdi çalışıyor.


1
Bunun için teşekkür ederim, aynı sorunu yaşıyordum, düzeltmeniz çözdü!
CubanX

2

.Net 4 sürümünüzü Visual [C # 2010 Express'ten veya hangisini] bulmak için, menünün Yardım öğesi altındaki Görsel uygulamanın "Hakkında" bölümüne gidin. Pencerenin sağ üst tarafında Microsoft .NET Framework satırının altında sürüm olarak görünmelidir.


1

NUnit 2.4.8'i çalıştırırken aynı hata mesajıyla karşılaştım. Bir süredir yükseltme yapmadığım için mevcut NUnit'i (v2.5.9) kurdum ve şimdi VS2010 derlemelerini desteklediğini gördüm. Bu nedenle, bu hatayla yeni karşılaştıysanız , NUnit sürümünüzü kontrol edin : Aralık 2010 itibariyle (ya da öylesine) yapmanız gereken tek şey NUnit'i yükseltmektir.


15/03/2011 tarihinde indirilen NUnit 2.5.9'u çalıştırıyorum ve bu sorun benim için ortadan kalkmayacak. Önerilen çözümü
denesem

1

NUnit 2.5.10'dan itibaren, GUI çalıştırıcısında görsel stüdyo desteğini etkinleştirebilirsiniz:

Araçlar-> Ayarlar-> IDE Desteği

Bundan sonra, derlemenizi bir .NET 4.0 uygulama etki alanında çalıştıran nunit-agent.exe işlemine başarıyla bağlanabildim.


0

Nunit 2.5.5'e yükselttikten sonra bu sorunu yaşarsanız, benim için nant'ı en son sürüme yükseltmeniz gerekir, bu benim için .91 alfa idi.


0

Ben buldum NUnit Uygulama başlamak yararlıdır Şablon . VS C # Express'i destekler, hata ayıklama testlerine izin verir ve .NET 4.0 için önceden derlenmiş NUnit içerir. Yazara teşekkürler, yeni test projesi tek tıkla hazır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.