2010-07-29 14 views
12

मेरे पास एक .NET 4 DLL है जिसके लिए मुझे इकाई परीक्षण उत्पन्न करने में परेशानी हो रही है। मैं वीएस 2010 मानक का उपयोग कर रहा हूँ। समाधान में हर दूसरी परियोजना कक्षाओं के लिए यूनिट टेस्ट स्टब्स जेनरेट करेगी। अन्य असेंबली के लिए, मैं मौजूदा कोड में जा सकता हूं, कक्षा के नाम पर राइट क्लिक करें और "यूनिट टेस्ट बनाएं" का चयन करें। मुझे चयन विंडो मिलती है जो ठीक से चलती है।वीएस 2010 त्रुटि जेनरेटिंग यूनिट टेस्ट

एक असेंबली जिसे मुझे वास्तव में कुछ कवरेज प्राप्त करने की आवश्यकता है, ऊपर वर्णित एक ही पद्धति का उपयोग करके टेस्ट स्टब्स उत्पन्न नहीं करेगा। मैं परियोजना/विधानसभा, राइट क्लिक में एक वर्ग के लिए जाते हैं, का चयन करें "यूनिट टेस्ट उत्पन्न करें", और मैं निम्न त्रुटि के साथ मुलाकात कर रहा हूँ:

Unit Test Generation Error: The follow error was encountered while reading module 'xx.Core': Could not resolve type reference: [System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx]System.Web.Routing.RouteValueDictionary

जहां तक ​​मेरा बता सकता हूँ, कोई प्रत्यक्ष संदर्भ हैं प्रोजेक्ट में System.Web के फ्रेमवर्क 2.0 संस्करण में त्रुटि संदेश में उल्लिखित है। उस निर्देशिका को खोजना जिसमें प्रोजेक्ट और सीएस फाइलें हैं जिन्हें grepWIN कहा जाता है, यह देखने के लिए कि किसी संदर्भ में उस संदर्भ के लिए पाठ शून्य परिणाम उत्पन्न करता है या नहीं। क्या एक ही समय में system.web dll के 2.0 और 4.0 संस्करण दोनों को संदर्भित करना भी संभव है, और यदि ऐसा है, तो आप ऐसा क्यों करना चाहेंगे?

इस त्रुटि संदेश से छुटकारा पाने के तरीके पर कोई विचार है ताकि मैं कुछ यूनिट परीक्षणों को ठीक से बाहर कर सकूं?

+1

मेरे पास एक ही अनुभव है लेकिन दुख की बात है कि कोई जवाब नहीं :-( –

उत्तर

0

क्या आप इकाई परीक्षण के लिए एनयूएनआईटी का उपयोग कर रहे हैं? यदि ऐसा है, तो डिफ़ॉल्ट रूप से नुनिट अंक .Net 2.0 पर इंगित करता है। आपको nunit.exe.config फ़ाइल में उचित परिवर्तन करने की आवश्यकता है।

क्या आप कृपया विंडोज एक्सप्लोरर में, सी: \ विन्डोज़ \ माइक्रोसॉफ्ट.नेट \ फ्रेमवर्क पर नेविगेट कर सकते हैं। वहां आप इस प्रकार के नामों के साथ कई फ़ोल्डरों को देखेंगे: v1.0.xxxxx, v1.1.xxxxx, ..., v4.0.xxxxx। V4.0.xxxxx फ़ोल्डर का सही नाम लिखें।

एक टेक्स्ट एडिटर के साथ फ़ाइल nunit.exe.config खोलें, जो इस फ़ोल्डर में है: सी: \ प्रोग्राम फ़ाइलें \ NUnit 2.5.2 \ bin \ net-2.0।

ऐड के तहत

:

<startup> <requiredRuntime version="v4.0.xxxxx" /> </startup> 

और ऐड के तहत [सही संख्या है कि आप नीचे लिखा द्वारा xxxxx की जगह]:

<loadFromRemoteSources enabled="true" /> 

ऊपर परिवर्तन मेरे लिए काम किया। उम्मीद है कि इस समस्या का सामना कर रहे अन्य लोगों के लिए।

+2

ओपी परीक्षण उत्पादन क्षमता का उपयोग कर रहा है। वीएस -2010 को फ़ाइल, कक्षा, और अन्य सभी नलसाजी के साथ यूनिट परीक्षणों के लिए स्टब्स बनाना चाहिए। आप एक जोड़ने के बारे में बात कर रहे हैं कक्षा ताकि यूनिट परीक्षण एनयूनीट फ्रेमवर्क के साथ कार्यान्वित किया जा सके। – GregC

1

मुझे ऑब्जेर्जेबल कोलेक्शन के साथ एक ही समस्या थी।

मेरा "समाधान" सभी संदर्भित परियोजनाओं और उनकी संदर्भित परियोजनाओं को .NET 4.0 में अपग्रेड करना था। फिर यह काम किया .... हालांकि यह थोड़ा अजीब लगता है और मैं कुछ और कर सकता था जिससे समस्या गायब हो गई।

1

मुझे हाल ही में मेरी परियोजनाओं में से एक के साथ एक ही समस्या थी। समस्या यह थी कि जब मैंने अपनी लाइब्रेरी बनाई थी तो मैंने डीएलएल फाइल का नाम बदल दिया। डीएल का संदर्भ देने वाली मेरी परियोजना अभी भी ठीक है, हालांकि यूनिट परीक्षणों को उत्पन्न करते समय मुझे एक ही त्रुटि मिली, जब तक कि इसे डीएलएल का नाम बदलकर बनाया गया था।

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