8

जब मैं रिशेर्पर यूनिट टेस्ट रनर का उपयोग करके अपने यूनिट परीक्षण चलाता या डीबग करता हूं, तो मुझे एक संवाद पॉप-अप मिलता है जो कहता है "यूनिट टेस्ट रनर विफल परीक्षण चलाने के लिए - एक या अनुरोध किया प्रकार के अधिक लोड करने में असमर्थ अधिक जानकारी के लिए LoaderExceptions संपत्ति को पुनः प्राप्त ":।रिशेर्पर यूनिट टेस्ट रनर का निदान कैसे करें "अनुरोधित प्रकारों में से एक या अधिक लोड करने में असमर्थ" त्रुटि

enter image description here

अब मैं कोशिश की है पुनर्निर्माण, साफ, मैन्युअल रूप से फ़ोल्डरों को हटाने, दृश्य स्टूडियो पुनरारंभ, हार्डवेयर पुनरारंभ होता है, आउटपुट/डिबग विंडो में देखता है, और शाम आर # "आंतरिक" मोड सक्षम करता है ताकि मैं इसे लॉग देख सकूं (% Temp% \ JetLogs के रूप में लिखा गया है), लेकिन इनमें से कोई भी इसे हल नहीं करता है या जी किसी भी संकेत किसी भी संकेत। मैंने "डीबगिंग" आर # की कोशिश की है लेकिन डीबगर किसी भी अपवाद को हिट करने से पहले फिर से संवाद पॉप अप हो जाता है।

मुझे यह कैसे हल करना चाहिए? यह बेहद परेशान है!

मैं उपयोग कर रहा हूँ:

  • आर # 2016.1.2
  • NUnit 3.2.1
  • विजुअल स्टूडियो 2015 अपडेट 2 (14.0.25123)
+0

यह प्रतीत इस त्रुटि सीधे Nunit से आ रही है करता है, लेकिन मुझे आश्चर्य है कि आर # मुझे इस निदान करने में मदद करने के लिए कुछ नहीं करता हूँ ... – Schneider

+0

Resharper, करने का मौका नहीं मिलता है के रूप में NUnit पकड़ता एक असफल परीक्षण परिणाम में अपवाद और morphs (सभी विवरण के बिना, यह असली समस्या है)। – Monoman

उत्तर

15

मैं निदान समाप्त हो गया यह एक काफी सरल विधि के साथ:

मैंने अपनी यूनिट टेस्ट असेंबली को क्लास लाइब्रेरी से कंसोल एप्लिकेशन में परिवर्तित कर दिया और एक मुख्य जोड़ा प्रवेश बिंदु (नीचे दिखाया गया है)। वहां के भीतर मैं उन सभी असेंबली प्रकारों को फिर से शुरू करता हूं जिन्हें मैंने उम्मीद की थी कि सभी प्रकार & निर्भर असेंबली लोड होने के कारण होंगे, जो किसी भी लोड अपवाद को प्रकट करेगा। और हाँ यह काम किया। यह जल्दी से System.Reflection.ReflectionTypeLoadException फेंक दिया जो त्रुटि संदेश का कैननिकल स्रोत है "एक या अधिक लोड करने में असमर्थ ..."। डीबगर में मैं LoaderExceptions संपत्ति की जांच कर सकता था जिसने मुझे बताया कि अंतर्निहित समस्या क्या थी।

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

और ऐसा करके (क्षमा करें, टिप्पणी में अच्छा दिखने के लिए मेरा कोड नहीं मिल सका), मुझे एक पॉपअप मिला जो मुझे बता रहा था कि वह कौन सी असेंबली लोड नहीं कर सका, और क्यों। मेरे मामले में, असली समस्या दृढ़ता से हस्ताक्षरित और हस्ताक्षरित असेंबली का मिश्रण था: ' { var प्रकार = विधानसभा.GetExecutingAssembly()। GetTypes(); } पकड़ (ReflectionTypeLoadException पूर्व) { foreach (ex.LoaderExceptions में वर आइटम) { MessageBox.Show (item.Message); } } ' –

+3

आपको लगता है कि रिशेर्पर टेस्ट रनर के पास उस अपवाद को पकड़ने का एक तरीका होगा और इसे स्वयं लिखने के बिना इसे पुनर्प्राप्त करने की अनुमति होगी। –

6

श्नाइडर के जवाब ठीक काम करेगा, लेकिन आप थोड़ा तेजी से PowerShell में LoaderExceptions जांच कर सकते हैं और भी आलसी लोगों वहाँ बाहर हैं।

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

'<आपकी असेंबली के पथ> 'एक पूर्ण पथ होना चाहिए – Seafish

संबंधित मुद्दे

 संबंधित मुद्दे