2011-04-06 12 views
41

पर चलाने के लिए यूनिट परीक्षण कैसे प्राप्त करूं मेरे पास एक C# अनुप्रयोग है जो x64 मोड में चलाना आवश्यक है। समस्या यह है कि मैं यूनिट परीक्षण बनाने की कोशिश करता हूं जो x64 अनुप्रयोग में विधियों को चलाता है और यूनिट टेस्ट प्रोजेक्ट भी निर्माण नहीं करेगा। जब यह निर्माण करने का प्रयास करता है तो मुझे निम्न त्रुटि मिलती है।मैं x64 प्लेटफ़ॉर्म

लोड करने में त्रुटि सी: ..... \ बिन \ 64 \ डीबग .... UnitTests.dll: परीक्षण कंटेनर लोड करने में असमर्थ 'सी: ..... \ बिन \ 64 \ डीबग .... UnitTests.dll 'या एक इसकी निर्भरताओं के। यदि आप अपनी टेस्ट प्रोजेक्ट असेंबली को 64 बिट असेंबली के रूप में बनाते हैं, तो इसे लोड नहीं किया जा सकता है। जब आप अपनी टेस्ट प्रोजेक्ट असेंबली बनाते हैं, तो प्लेटफ़ॉर्म के लिए "कोई भी CPU" चुनें। 64 बिट प्रोसेसर पर 64 बिट मोड में अपने परीक्षण चलाने के लिए, आपको अपनी टेस्ट सेटिंग्स को 32 बिट प्रक्रिया में अपने परीक्षण चलाने के लिए होस्ट टैब में बदलना होगा। त्रुटि विवरण: फ़ाइल या असेंबली 'फ़ाइल लोड नहीं हो सका: /// सी: ..... यूनिटटेस्ट \ bin \ x64 \ डीबग .... UnitTests.dll' या इसकी निर्भरताएं। एक प्रोग्राम को गलत प्रारूप के साथ लोड करने का प्रयास किया गया था।

मैंने यूनिट परीक्षण को x64 में बदलने और किसी भी CPU को बदलने की कोशिश की है और अभी भी इसे चलाने के लिए नहीं मिल सकता है। क्या इस के लिए कोई हल है?

+0

तहत Test मेनू से डिफ़ॉल्ट लक्ष्य मंच का चयन कर सकते ऊपर करता है अपने इकाई परीक्षण पुस्तकालय है कोई संदर्भ है कि केवल 86 कर रहे हैं? – Tejs

उत्तर

36

मुझे लगता है कि आप विजुअल स्टूडियो परीक्षण ढांचे का उपयोग कर रहे हैं क्योंकि आप किसी अन्य का उल्लेख नहीं करते हैं। वीएस -2010 में आप परीक्षण होस्ट को x64 में चलाने के लिए मजबूर कर सकते हैं। अपनी असेंबली को किसी भी CPU या x64 के रूप में बनाएं, फिर परीक्षण होस्ट को x64 पर सेट करें।

http://msdn.microsoft.com/en-us/library/ee782531.aspx

+0

हां, क्षमा करें, यह विजुअल स्टूडियो 2010 –

+1

शानदार उत्तर है और मेरी समस्या हल हो गई है। मुझे इसे काम करने के लिए एक और चीज करना पड़ा जो यहां समझाया गया है। http://stackoverflow.com/questions/2314887/mstest-no-tests-are-run-because-no-tests-are-loaded-or-the-selected-tests-are-d –

+0

जो लोग यह बताने के लिए भूल गए कि मैं क्या भूल गया करना था जैसा कि यहां बताया गया है, मुझे विन्यास प्रबंधक में सेटिंग को किसी भी सीपीयू में बदलना पड़ा। "आपको यह सुनिश्चित करने की ज़रूरत है कि विधानसभा का निर्माण किया जा रहा है।मेरे मामले में, यह त्रुटि निम्न के संयोजन के कारण थी: (ए) "कॉन्फ़िगरेशन प्रबंधक" में, "बिल्ड" बटन को नहीं चुना गया था (बी) अन्य सभी असेंबल्स x32 पर सेट किए गए थे, यह एक सेट किया गया था "कॉन्फ़िगरेशन प्रबंधक" (सी) में "कोई भी CPU" यह शिकायत कर रहा था कि इसे एक असेंबली पर हस्ताक्षर करने की आवश्यकता है, इसलिए मुझे इसे प्रोजेक्ट गुणों में सेट करने की आवश्यकता है " –

1

मुझे एक समान समस्या थी। विजुअल स्टूडियो 2010 (x64 के तहत) में एक अजीब समस्या है, जो मौजूदा समाधान में एक नई परियोजना जोड़ते समय लक्षित सीपीयू को बदला जा सकता है। क्या आप वाकई सभी संदर्भ और सीपीयू लक्ष्य x64 हैं?

0

आप (सच के लिए सेट) स्थानीय करने के लिए परीक्षण परियोजना के सभी संदर्भों को सेट करने के लिए की आवश्यकता होगी। मुझे इससे पहले यह समस्या मिली, उम्मीद है कि यह आपके लिए भी काम करेगा (मैं विंडोज 7 64 बिट + वीएस2012 का उपयोग कर रहा हूं)

0

यदि आप सभी प्रासंगिक असेंबली को साफ और पुनर्निर्माण करते हैं तो यह त्रुटि ठीक की जा सकती है। अप्रत्याशित रूप से एक फ़ाइल दूषित होनी चाहिए।

वीएस के लिए एक चीज सुधारने के लिए, जब खराब प्रारूप अपवाद का पता चला है, तो कृपया फ़ाइल नाम की रिपोर्ट करें। फिर डेवलपर केवल उस फ़ाइल को पुनर्निर्माण कर सकता है।

38

वी.एस. 2012 में और आप Test Settings|Default Processor Architecture

Visual Studio Test Settings

+2

_That_ चेक मार्क था जो मुझे याद आया। मैंने टेस्टी और परीक्षण प्रोजेक्ट दोनों के प्रोजेक्ट प्रॉपर्टीज के माध्यम से सभी उम्र की खोज की, और यह उस पर आ गया टेस्ट सेटिंग्स में सिंगल चेक मार्क ... § $% और # *! –

+0

यदि रिशेर्पर के यूनिट टेस्ट रनर का उपयोग करना है, तो इसे प्लेटफ़ॉर्म भी देखें: http://stackoverflow.com/a/34517992/40422 –

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