2013-01-24 31 views
13

हम अपने प्रोजेक्ट में विजुअल स्टूडियो 2012 और टीम फाउंडेशन सर्वर 2010 का उपयोग कर रहे हैं। चूंकि, हम माइक्रोसॉफ्ट फॉक्स का उपयोग कर रहे हैं, हम अपने टीम बिल्ड 2010 की शुरू की गई टेस्ट कार्यक्षमता का उपयोग नहीं कर सकते थे, मैंने एक बिल्ड गतिविधि बनाई है जो VSTest.Console.exe को टेस्ट असेंबली पास करने का आह्वान करता है। यह दृष्टिकोण हमारे लिए अच्छा काम कर रहा है। हालांकि, हाल ही चेक-इन हम निम्न त्रुटि Vstest.console.exeनिष्पादक के निष्पादक के दौरान अपवाद हुआ: // mstestadapter/v1 ': ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है

क्रियान्वित जब

त्रुटि हो रही है के बाद: जबकि निष्पादक लागू एक अपवाद उत्पन्न हुई 'निष्पादक: // mstestadapter/v1': ऑब्जेक्ट संदर्भ एक उदाहरण के लिए सेट नहीं एक वस्तु का।

मैंने बाइनरी फ़ाइलों को मेरी स्थानीय मशीन पर कॉपी किया और फिर से त्रुटि प्राप्त करने में सक्षम था। दिलचस्प बात यह है कि, हम चेक-इन से पहले एक dev build चलाते हैं जो समान पैरामीटर के साथ एक ही vstest.console.exe चलाता है और यह सही तरीके से काम करता है। मेरे पास मेरी मशीन पर दो फ़ोल्डर्स हैं, क्योंकि एक कॉल ठीक काम करता है और दूसरे के लिए यह नहीं करता है। संकलित असेंबली एक ही आकार के दिखते हैं और सुझाव देने में बहुत अंतर नहीं हैं।

मैंने प्रोसेस मॉनीटर का उपयोग करने की कोशिश की लेकिन प्रक्रिया को बाहर निकलने के लिए प्रक्रिया के अलावा कुछ भी स्पष्ट नहीं मिला। क्या किसी को इस त्रुटि के बारे में बहुत कुछ पता है? क्या कोई तरीका है कि मैं अपने टेस्ट रन से अधिक जानकारी प्राप्त कर सकता हूं?

सादर,

हामिद

उत्तर

4

हम समस्या की तह तक मिला है। हम एंटिटी फ्रेमवर्क 5.0 का उपयोग कर रहे हैं और हमारे पास ऐसी स्थिति भी है जहां हमारी कुछ टेस्ट असेंबली लक्ष्यीकरण कर रही हैं .Net 4.0 और कुछ लक्ष्यीकरण कर रहे हैं .Net 4.5।

जब हम परीक्षण चलाने की कोशिश कर रहे हैं जैसे नेट फ्रेमवर्क के विभिन्न संस्करणों को लक्षित करने और एंटीटी फ्रेमवर्क 5.0 का उपयोग करने वाले असेंबली एक ही टेस्ट (vstest.console.exe) प्रक्रिया में चलती हैं, तो हमें यह त्रुटि मिलती है।

मुझे लगता है कि इसे दो संस्करणों (नेट 40 और नेट 45) के साथ एंटीटी फ्रेमवर्क 5.0 जहाजों के तरीके से करना है। एक बार लाइब्रेरी का एक संस्करण प्रक्रिया में लोड हो जाने पर, अन्य संस्करण लोड नहीं किया जा सकता है और इससे त्रुटि उत्पन्न हुई है।

2

मैं जब परियोजना के AssemblyInfo में AssemblyAttribute निर्दिष्ट किया जाता है विषय में निर्दिष्ट एक ही त्रुटि है:

[assembly: AssemblyCulture("en")] 

यदि यह attribute मौजूद है, इकाई परीक्षण के रन विफल रहता है। यदि मैं कोड की इस पंक्ति को हटा देता हूं या मैं en भाषा को हटा देता हूं, तो इकाई परीक्षण का सफलता सफलतापूर्वक चलाता है।

+0

यह मेरे लिए यह तय हो गई। किसी को भी कोई विचार है कि यह परीक्षणों को चलाने से क्यों रोक देगा? मेरा मतलब है, कौन सोचता है कि एक असेंबली कल्चर विशेषता आपके यूनिट परीक्षणों को प्रभावित करेगी .... – mikesigs

+0

एमएस टेस्ट फ्रेमवर्क आपके असेंबली में प्रकारों को पारदर्शी करता है ताकि यह देखने के लिए कि टेस्टक्लास और टेस्टमेड विशेषताओं के साथ कौन से चिह्नित हैं। संभवतः यह प्रतिबिंब GetCustomAttribute के माध्यम से करता है। संभवतः यह असेंबली की गणना करता है और इसके गुण प्राप्त करता है, यह विधानसभा संस्कृति को सही तरीके से संभाल नहीं करता है? यह एक जंगली अनुमान है - यह केवल टाइप गुणों की बजाय असेंबली विशेषताओं को पार्स कर रहा है, किसी का अनुमान है। – PhillipH

0

मैंने इस अपवाद को हल करने के लिए वेब पर सब कुछ करने की कोशिश की। आखिर में मैंने विजुअल स्टूडियो 2013 के अद्यतन v4 को स्थापित करके इस समस्या को हल किया (जिसका अर्थ है कि मैं वर्तमान में उपयोग कर रहा हूं)। आशा करता हूँ की ये काम करेगा!

0

ऐप.config और packages.config को हटाने, यदि मौजूद है, और nuGet संकुल के माध्यम से इकाई फ्रेमवर्क को पुनर्स्थापित करना मेरे लिए काम करता है।

1

मैं विजुअल स्टूडियो 2017 नई MSTest.Framework और MSTest.TestAdapter उपयोग करने के साथ (लाइव यूनिट टेस्टिंग उपयोग करने के लिए सक्षम होने के लिए) एक ही त्रुटि संदेश था अभी। यह पता चला कि मैं अपने समाधान में उन पैकेजों के कई संस्करणों का उपयोग कर रहा था। उन्हें नवीनतम संस्करण में समेकित करने से समस्या हल हो गई।

1

An exception occurred while invoking executor 'executor://mstestadapter/v2'

मैं था कई TestAdapter की और TestFramework मेरी BuildAgents फ़ोल्डर में है, को हटाने v1.1.11 संस्करणों समस्या का समाधान हो: विजुअल स्टूडियो, टेस्ट में:

enter image description here

1

यह वही मेरे लिए काम किया है -> टेस्ट सेटिंग्स -> डिफ़ॉल्ट प्रोसेसर आर्किटेक्चर -> एक्स 64।

हालांकि यह हर किसी के मुद्दे को हल नहीं कर सकता है, उम्मीद है कि इससे आप में से कुछ को वहां मदद मिलेगी।