मैं माइक्रोसॉफ्ट नकली परीक्षण ढांचे का उपयोग कर रहा हूं। इसके चारों ओर कोई रास्ता नहीं है क्योंकि मुझे "विरासत" कोड के कारण शिम/मोल्स दृष्टिकोण का उपयोग करने की आवश्यकता है जिसे मैं नहीं बदल सकता। यह किसी विक्रेता से कोई स्रोत नहीं है, इसे बिना किसी स्रोत के लिखा गया है। इसलिए मैं 3 संभावित ढांचे, टाइपमॉक (महंगे), टेलीरिक के जस्टमैक (महंगी) या माइक्रोसॉफ्ट के झुंड के साथ फंस गया हूं। जैसा कि हमारे पास पहले से ही वीएस अल्टीमेट है, हम नकली चुन रहे हैं। चूंकि अधिकांश लोगों को लगता है कि उन्हें इंटरफेस और/या निर्भरता इंजेक्शन का उपयोग करने के लिए कोड को दोबारा लिखने या संशोधित करने की सलाह देने की आवश्यकता है, मैं आपको सामने बताऊंगा, यह एक विकल्प नहीं है।माइक्रोसॉफ्ट नकली x64 नहीं x86 और v4.5
मेरे सामने आने वाले मुद्दों में से एक यह है कि मैं जिस पुस्तकालय को नकली करने का प्रयास कर रहा हूं वह विशाल है और fakes.exe के 64 बिट संस्करण के उपयोग की आवश्यकता है, न कि 32 बिट (fakes.x86.exe), यह 32 बिट ऐप्स की स्मृति सीमा में चलाता है।
दूसरा मुद्दा यह है कि मुझे v4.5 ढांचे का उपयोग करके नकली लाइब्रेरी को संकलित करने की आवश्यकता है। कमांड लाइन के माध्यम से यह संभव है, हालांकि अनियंत्रित। इसका कारण यह है कि v4.5 में उन्होंने सिस्टम में IeadOnly * इंटरफेस जोड़े। चयन। जेनेरिक और लाइब्रेरी उनका उपयोग करती है। V4 के साथ संकलन, उम्मीदों के अनुसार, प्रकारों को नहीं मिला है, एक त्रुटि फेंकता है।
समस्या, विजुअल स्टूडियो हमेशा x86 संस्करण और v4.0 ढांचे का उपयोग कर रहा है और मुझे इसे ओवरराइड करने का कोई तरीका नहीं मिल रहा है। क्या कोई जानता है कि 64 बिट और v4.5 ढांचे का उपयोग करने के लिए इसे कैसे प्राप्त किया जाए? मेरा वर्तमान विचार दृश्य स्टूडियो की अंतर्निर्मित सामग्री का उपयोग नहीं करना है और केवल कमांड लाइन का उपयोग करना और फ़ाइल को मैन्युअल रूप से संदर्भित करना है। फिर डीएलएल के प्रत्येक अपडेट पर, हम मैन्युअल रूप से इसे फिर से बनायेंगे और संदर्भ अपडेट करेंगे। यह फ़ाइल अक्सर अद्यतन नहीं होती है, इसलिए यह एक संभावना है।
कमांड लाइन मैं मैन्युअल रूप से नकली पुस्तकालय (कोई इस उपयोगी लग सकते) उत्पन्न करने के लिए उपयोग करते हैं:
"c:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\fakes\fakes.exe" <assembly> /tfv:v4.5
मदद आदेश केवल पता चलता है कि वी 2, v3.5 और v4 tfv के लिए संभव विकल्प हैं, लेकिन सिर्फ kicks के लिए मैंने v4.5 कोशिश की।
मैंने किसी भी cpu के बजाय ऐप पर आर्किटेक्चर को मजबूर करने की कोशिश की है, कोई बदलाव नहीं है जिसमें fakes.exe भाग गया। परीक्षण के लिए .csproj फ़ाइल में देखा गया, कोई परिवर्तन नहीं। fcs.exe में .csproj फ़ाइल में देखा गया है और यह दृश्य स्टूडियो में खोले गए ढांचे के v4 का उपयोग करने के लिए कहता है, v4.5 में बदल गया, ठीक संकलित। नकली कमांड लाइन का इस्तेमाल किया, ठीक संकलित। प्रोजेक्ट में .fakes फ़ाइल में एक विशेषता है जो संकलक संस्करण को परिभाषित करने की अनुमति देता है, लेकिन इसे v4.5 पर सेट करने से अभी भी काम नहीं हुआ है। मुझे लगता है कि v4 से v4.5 के दृश्य स्टूडियो में संस्करण परिवर्तन ने असेंबली संदर्भों को भी बदल दिया है। मेरा अगला प्रयास टेम्पलेट प्रोजेक्ट को आजमाकर बदलना है यदि मैं इसे पा सकूं।
तुम भी यकीन है कि वहाँ है एक कर रहे हैं Fakes.exe का 64 बिट संस्करण? –
हां, आप दिखाए गए आदेश का उपयोग करके इसे मैन्युअल रूप से चला सकते हैं। 32 बिट fakes.x86.exe है। – Edward
मैं इकाई परीक्षण परियोजना को 4.5 पर सेट करके और समाधान को बंद करके इसे फिर से खोलकर v4.5 काम करने में सक्षम था। यकीन नहीं है कि मुझे दृश्य स्टूडियो क्यों बंद करना पड़ा ... दुर्भाग्य से यह 32/64 बिट समस्या को हल नहीं किया। – Edward