2014-11-19 19 views
12

kullanımı aşağıdaki basit bir test durum var:zorlamak nunit konsol koşucu CLR 4.5

Bu test .NET 4 başarısız ama .NET 4.5 geçer
var uri = new Uri("http://foo.com/bar%2Fbaz"); 
Assert.AreEqual("http://foo.com/bar%2Fbaz", uri.AbsoluteUri); 

, ben sağlayan bu kullanarak ReSharper testi koşucu test edebilirsiniz kullanışlı bir CLR seçim menüsü.

Ama şu gibi nunit konsol koşucusu kullanarak bu testi çalıştırırsanız:

nunit-console.exe /framework:4.5 "C: \ Data \ Projects \ UriTest \ bin \ Debug \ UriTest.dll"

Testlerim başarısız oldu. Hatta nunit-console.exe.config değiştirilebilir ve bu ekledik:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 

ve bu ekledikten sonra, ben koşucu bu çıktıyı almak başladık

:

Runtime Environment - 
    OS Version: Microsoft Windows NT 6.2.9200.0 
    CLR Version: 4.0.30319.34209 (Net 4.5) 

ProcessModel: Default DomainUsage: Single 
Execution Runtime: v4.5 

Ama yine benim test başarısız olur. Neden olduğuna dair fikri olan?

+0

Hiç bir çözüm buldunuz mu? Tam olarak aynı soruna isabet ediyorum ... –

+0

NUnit 2.6.4 ile yeniden başlatabilirim. Ayrıca 4.0 kullanmak için NUnit 3 zorlamak için çalıştı ama benim test geçer ... –

cevap

8

Konuya daha derin bir bakış attıktan sonra, farklı forumlardan topladığım bilgiler.

İlk olarak, çalışma zamanını otomatik olarak algılamalıdır. Eğer değilse (durumunuz böyle görünüyorsa), her zaman/framework komut seçeneğini kullanarak doğru çalışma zamanını kullanarak çerçeveyi zorlayabilirsiniz.

Nunit-console.exe dosyasında ne var, NUnit runner belirtilen çalışma zamanını kullanmaya zorlar. Derlemeniz farklı bir .NET sürümünde ise, NUnit bunları çerçeve sürümünü zorlamak için ayrı bir işlemde çalıştırır.

documentation for NUnit 2.6.2'a bakın. Eğer komut satırında ne var

/framework:4.5 olmamalı ama bu belirli bir şey varsa oldukça /framework:net-4.5

Sonraki adım testi bakmak ve görmek olurdu Başarısız hale getirir.

Lütfen daha fazla bilgi için biraz daha yorum yapın.

+0

Cevabınız için teşekkürler, ancak bu işe yaramaz. İlk olarak, clr.bat NUnit 2.6.3 ile birlikte gönderilmez ve yeni belgeler bundan bahsetmez. Ayrıca, eski dokümanlar "Not: Yapılandırma dosyasında bir bölümü kullanırsanız, bu seçeneğin önceliği vardır." hangi .exe.config dosyası ile yaptığım hemen hemen. – huseyint

+0

Cevabımı güncelledi. –

+1

Hala /framework:net-4.5 anahtarıyla başarısız. Bunu kolayca yeniden üretebilirsiniz: 1. .NET 4.5.2'yi kullanarak bu [Test] ile bir DLL projesi oluşturun. 2. Yapılandırın 3. Nunit-konsolunu (ya da bu konu için ramazan GUI'sı) çalıştırın – huseyint

0

.NET 4.0 çerçevesinde, eğik çizgi değerlerini kodlama konusunda bir hata oluştu. here açıklamasını inceleyebilirsiniz. 4.5'de sonuç RFC-3986 uyumlu hale getirmek için düzeltildi. Yani, bu yüzden 4.0 & 4.5 için farklı davranışınız var.

+0

Evet, ben değişiklik olduğunu biliyorum, .NET 4.5 – huseyint

+0

@huseyint kullanmak için zorlamak için deneyin, ancak .NET 4 ile çalışmak gibi görünüyor gibi görünüyor çalışanın, ne var ki, sorunum var 4.5 testleri çalıştırmadan önce? – ialekseev

+0

Evet, çözümüm özellikle .NET 4.5.2'ye karşı geliştirildi. – huseyint