2013-07-01 12 views
5

ben değilim kullanarak "dosya veya derleme yüklenemedi".nunit-konsol benim çözümde testlerin hepsi çalıştırmak için <code>nunit-console</code> kullanmak MySolution.sln

c:\some\path>nunit-console-x86.exe MySolution.sln 
NUnit-Console version 2.6.2.12296 
Copyright (C) 2002-2012 Charlie Poole. 
Copyright (C) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov. 
Copyright (C) 2000-2002 Philip Craig. 
All Rights Reserved. 

Runtime Environment - 
    OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1 
    CLR Version: 2.0.50727.5466 (Net 3.5) 

ProcessModel: Default DomainUsage: Default 
Execution Runtime: net-3.5 
Could not load file or assembly 'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 

Yani, ben File > Open Project > MySolution.sln yaptılar nunit-x86.exe denemeye karar verdi ve bu var:

Bunu yapan olduğunu ve nasıl ne

--------------------------- 
NUnit 
--------------------------- 
Test load failed! 

System.IO.FileNotFoundException : Could not load file or assembly 
'MyNamespace.Administration, Version=0.0.0.1, Culture=neutral, 
PublicKeyToken=null' or one of its dependencies. The system cannot 
find the file specified. 

For further information, use the Exception Details menu item. 
--------------------------- 
OK 
--------------------------- 

The exception can be found here

do Tamir ettim mi nunit aramaya bunu yüklemeye çalışıyor başarısız olduğu anlamına gelir

  • MyNamespace.Administration hatta testleri içeren DLL dosyaları biri değil

    daha fazla bilgiyi, (a MySolution.nunit dosyasını sürdürmek zorunda kalmadan) Çalıştırmak için testler. Bunu bilerek, nunit-x86.exe (MySolution.nunit) tarafından oluşturulan dosyayı düzenledim ve sınamaları olmayan tüm dosyaları kaldırdım. Tabii ki, testler çalışır (hem gui hem de konsolda). Bu benim için kabul edilemez çünkü bu, başka bir yapılandırma dosyası tutmam gerektiği anlamına geliyor. Nunits destekleyen .sln dosyaları bundan kaçınmak gerekiyordu.

  • Benim testler ince TestDriven.net kullanarak yürüttüğünüz (ama gerçekten nunit-konsolunu kullanarak onları çalıştırmak gerekir)
  • Ben this answer baktım ama füzyon günlük görüntüleyici ne diyor anlam olamaz. Bu günlük yardımı gönderir mi? Projem klasörlerinde nunit.core arayan biri - bu bir MyNamespace.Administration.dll/EXE inside the nunit directories
  • Tests_24398275 x2 bulmaya çalışıyor gibi görünüyor,
    • nunit-ajan-x86.exe: Log Viewer bağlayıcı Kurul, 3 dosya oluşturuluyor listeler ve proje klasörlerimin içinde unit.core.interfaces arayan başka bir tane. Bu iki el kitabına da dikkat ettim, çünkü onlar da el ile düzenlenmiş .nunit projemde göründüler.
  • (her yorum yazıcısı için) Sorun, oluşturma yöntemi değil, projenin/montajın kendisi ile ilgili gibi görünüyor. Bir .nunit projesi oluşturursam ve buna MyNamespace.Administration eklemeye çalışırsam ('Montaj Ekle ...' veya 'VS projesi ekle ...' kullanarak) başarısız olur.
  • Doğrudan arama nunit-console-x86 somepath/bin/Debug/MyNamespace.Administration.dll çalışır.
+0

Görünüşe göre, 'MyNamespace.Administration.dll', sınamalarda kullanılan kodu içerir. Örneğin, projeye referans verirken 'CopyLocal = True' değerini koymak için unutmadığınızdan emin misiniz? – andreister

+0

Bir test projesi (dll) tarafından başvurulan, ancak bu proje, MySolution.nunit kullandığımda çalışır, bu da beni gerçekten bu projeyi yüklemeye çalışıp çalışamadığını görmek için başarısız olduğuna inanmamı sağlar. Hangisinin test yaptırdığını görmek için projeler açar. –

+0

Bu projeyi, başarısız olup olmayacağını görmek için açıkça '.nunit' içine ekleme hakkında ne düşünüyorsunuz? Normal olarak test dışı bir proje için NUnit, testlerinin olmadığını rapor eder. – andreister

cevap

3

Ne yazık ki, nunit-discuss group adresinden sonra bile bu sorun için uygun bir çözüm bulamadık.

nunit-tartışmak grup benim testler çünkü bir seviye yukarı olan bir bağımlılık sahip başarısız olduğunu doğruladı.

Ancak kabul edilebilir bir çalışma buldum.

.dll s doğrudan aynı sorunları yoktu arayarak beri. Bunu glob'larla yapabilirdim, ama ben penceredeyim ... ama git bash yüklü.

Bunu başardı benim biraz sert proje yapısından yararlanılarak ve adlandırma kuralı:

"C:\Program Files (x86)\Git\bin\bash.exe" -c 'nunit-console-x86.exe //framework=net-4.5 //xml:nunitresults.xml MysolutionFolder/Tests/*/bin/Debug/*.Tests.dll' 

benim adlandırma kuralı yararlandı unutmayınız. Bu argüman sayısını azaltmak için çok önemlidir.

yerine MysolutionFolder/Tests/*/bin/Debug/*.Tests.dll yerine nunit-console-x86 Bad file number diyerek bir hata aldım. Ayrıca, sadece doğru dosyaları sağlarsam daha hızlıdır.

Eğer bash daha yeni bir sürümü varsa (4.0+, sanırım) yerine aşağıdaki komutu (** kullanımını dikkat edin) kullanabilirsiniz: üzerinde daha kısa ve daha hoşgörülü olduğunu

"C:\Program Files (x86)\Git\bin\bash.exe" -c 'nunit-console-x86.exe //framework=net-4.5 //xml:nunitresults.xml MysolutionFolder/**/bin/Debug/*.Tests.dll' 

proje yapısı. benim cevap yeniden gönderiliyor

5

nunit-tartışmak:

çözümleri VS yükleme NUnit özelliği basit projeler veya NUnit proje dosyası oluşturmak için hızlı bir yol olarak çalışmaya gerçekten oldukça sınırlıdır ve amaçlanan - çözüm yük yani ve bir NUnit projesi olarak kaydedin, ardından oluşturulan xml dosyasını düzenleyin. Çözüm dosya formatı hangi dosyaların test olduğunu göstermediğinden, NUnit herhangi bir test içerip içermediğini kontrol etmek için her bir projeyi yüklemeye çalışır. Eğer önermek gibi

, ben özellikle montaj çünkü bir seviye yukarı olan bir bağımlılık sahip yüklenmemesi düşünüyorum (Bu Visual Studio 2012 ve daha sonra btw Test kaşif penceresini kullanırken yapar. Aynı şey). Bir VS çözüm dosyası veya bir NUnit proje dosyası yüklerken, NUnit uygulama tabanını çözüm veya projeyi içeren dizine ayarlar. Bu yüzden bir NUnit proje dosyası bir seviye çalışıyor.

Tasarımcının bu tür bir durumdaki amacı, bir NUnit proje dosyası oluşturacağınızdır. Bunu sürdürmek için başka bir yapılandırma dosyası verdiğinden, bunun biraz rahatsız edici olduğunu biliyorum. Glob'ların komut satırında veya proje dosyasında kullanılmasıyla ilgili önerilere açığım. Bu tür değişiklikler muhtemelen bir sonraki büyük güncellemeye, NUnit 3.0'a gider.

+0

Personaly, bunu belirtmek için izin veren ekstra bir komut argümanı Her bir projenin kökünde testler yapılmalıdır. Düzinelerce projeye sahip çözümler için .sln dosyasının kullanımı VERY conveniente'dir, ancak yapılandırma dosyası ve bağımlılık yalıtımı için hala bir yol olmalıdır. – MytyMyky

İlgili konular