2016-06-24 72 views
8

Yeniden Birleştirici Birimi Test Çalıştırıcısı kullanarak birim testlerimi çalıştırdığımda veya hata ayıkladığımda, "Birim Test Çalıştırıcısı başarısız oldu" diyen bir iletişim kutusu açtım testler - istenen türlerinden birini veya daha fazlasını yüklenemiyor fazla bilgi için LoaderExceptions özelliği alın ":. Şimdi denedim yeniden oluşturur varNasıl Sağlayıcı Ünitesi Test Çalıştırıcısı "İstenen tiplerden bir veya daha fazlası yüklenemedi" hatası

enter image description here

, temizler, elle silme klasörler, görsel stüdyo yeniden başlatıldığında, donanım yeniden başlatma, çıkış/hata ayıklama pencereleri ve R # "dahili" modunu etkinleştiren akşamları yeniden başlatır, böylece günlüklerini görebiliyorum (anladığım kadarıyla% Temp% \ JetLogs'a yazılır), ancak bunların hiçbiri bunu çözemez veya g Herhangi bir ipucu hiç. R # hata ayıklama denedim ama hata ayıklayıcı herhangi bir özel duruma vurmadan önce iletişim kutusu açılır.

Bunu nasıl çözmem gerekiyor? Bu son derece can sıkıcı!

kullanıyorum:

  • R # 2016.1.2
  • NUnit 3.2.1
  • Visual Studio 2015 Güncelleştirme 2 (14.0.25123)
+0

Bu hata NUNIT doğrudan geliyor gibi görünüyor, ama ben R # Bırak bu tanımlanmasına yardımcı olması için hiçbir şey yapmaz şaşırıyorum NUnit yakalar gibi ... – Schneider

+0

Resharper, bir şans almaz Başarısız Bir Test Sonucunda istisnalar ve morflar (tüm detaylar olmadan, asıl sorun). – Monoman

cevap

15

ben teşhis sona erdi Bu oldukça basit bir yöntemle:

Birim sınama derlememi bir sınıf kitaplığından bir konsol uygulamasına dönüştürdüm ve bir Ana ekledim giriş noktası (aşağıda gösterilmiştir). İçerisinde, tüm yük türleri için & bağımlı derlemelerin yüklenmesine neden olacağını umduğum tüm derleme türlerini yineliyorum. Ve evet çalıştı. Hızlı bir şekilde "Bir veya daha fazla yüklenemiyor ..." hata mesajının standart kaynağı olan System.Reflection.ReflectionTypeLoadException'u attı. Hata ayıklayıcıda, temel sorunun ne olduğunu bana anlatan LoaderExceptions özelliğini inceleyebilirdim.

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var types = Assembly.GetExecutingAssembly().GetTypes(); 
    } 
} 
+1

Ve bunu yaparak (özür dilerim, yorumumu iyi görünmesi için kodumu alamadım), tam olarak hangi montajın yüklenemediğini ve neden açıldığını anlatan bir açılır pencerem var. Benim durumumda, asıl sorun güçlü bir şekilde imzalanmış ve imzasız meclislerin karışımıydı: 'deneyin { var types = Assembly.GetExecutingAssembly(). GetTypes(); } catch (ReflectionTypeLoadException ex) { foreach (ex.LoaderExceptions içinde var item) { MessageBox.Show (item.Message); } } –

+3

Resharper Test Runner'ın bu Özel Durumu yakalama ve kendiniz yazmanıza gerek kalmadan geri almanıza olanak sağlayacağını düşünebilirsiniz. –

6

Schneider'in cevabı iyi çalışacaktır fakat orada daha tembel insanlar varsa sen biraz daha hızlı PowerShell LoaderExceptions kontrol edebilirsiniz.

[Reflection.Assembly]::LoadFile('<path to your assembly>') | % {$_.GetTypes()} 
$Error[0].Exception.InnerException.LoaderExceptions 
+0

'' mutlak bir yol olmalı – Seafish