NUnit Visual Studio 2010 कोड नहीं चल रहा है


98

मैं एक दृश्य स्टूडियो 2010 बीटा dll को NUnit GUI में लोड करने की कोशिश कर रहा हूं। मुझे एक पॉपअप त्रुटि मिलती है।

यह असेंबली वर्तमान में लोड किए गए रनटाइम की तुलना में नए रनटाइम द्वारा बनाया गया है और लोड नहीं किया जा सकता है। आप उस संस्करण की तुलना में CLR के बाद के संस्करण के साथ एक असेंबली बिल्ड को लोड करने का प्रयास कर सकते हैं जिसके तहत NUnit वर्तमान में चल रहा है।

मैं .NET 4 के तहत चलने के लिए एक निष्पादन योग्य को कैसे बाध्य करूं?


क्या यह प्रश्न वास्तव में VS 2010 या .NET 4 कोड से संबंधित है? - मैं एक उपकरण की तलाश कर रहा हूं जो मुझे Visual Studio 2010 पर NUNIT परीक्षण चलाने की अनुमति देता है, और यह प्रश्न भ्रामक था।
निकोलस इरिसरी

@ निकोलस - इसका संदर्भ .NET 4.0 है।
डैनियल ए। व्हाइट

जवाबों:


132

मैंने NUnit 2.5 स्रोत डाउनलोड किया है और VS2010 बीटा में VS2008 समाधान खोला है। एक बार रूपांतरण समाप्त होने के बाद मैंने सभी परियोजनाएँ खोलीं और सभी परियोजनाओं के लिए लक्ष्य ढाँचा सेटिंग को ".NET फ्रेमवर्क 4.0" में बदल दिया। मैंने तब बिना किसी त्रुटि के समाधान का निर्माण किया। मैं अब .NET 4.0 के लिए निर्मित परीक्षण चलाने के लिए NUnit GUI ऐप का उपयोग कर सकता हूं। मैंने इस बिल्ड का विस्तृत परीक्षण नहीं किया है, इसलिए समस्याएँ हो सकती हैं, लेकिन मेरे उद्देश्यों के लिए यह ठीक काम करता है।

अपडेट: NUnit का पुनर्निर्माण करना आवश्यक नहीं है। मुझे पता चला है कि यदि आप निम्न NUnit कॉन्फिग फाइल में निम्नलिखित जोड़ते हैं तो आप .NET 4.0 के लिए बनाया गया टेस्ट dll चला सकते हैं।

<कॉन्फ़िगरेशन> जोड़ के तहत:

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

और <क्रम> जोड़ के तहत:

<loadFromRemoteSources enabled="true" />

3
ठीक है, कॉन्फ़िगरेशन अपडेट यह काम करता है, लेकिन मुझे अपने आवश्यक रनटाइम टैग के लिए संस्करण = "v4.0.21006" का उपयोग करना पड़ा।
mkmurray

4
BTW, कॉन्फिग फ़ाइल का डिफ़ॉल्ट स्थान है: C: \ Program Files \ NUnit 2.5.3 \ bin \ net-2.0 \ nunit.exe.config उन विकल्पों को जोड़ना जो मेरे लिए काम करते हैं।
ब्रैड इरबी

2
नवीनतम Nunit + .net4 RTM के साथ काम करने के लिए इसे प्राप्त नहीं किया जा सका। मैंने सुझाए गए प्रविष्टियों को nunit -sole.exe.config में जोड़ा है, लेकिन मुझे यह मिलता है: System.ArgumentException: नेट-4.0 फ्रेमवर्क उपलब्ध नहीं है उपरोक्त संस्करणों के साथ
ट्राइएड किया गया है

1
कंसोल रनर के लिए, बताए अनुसार कॉन्फ़िगरेशन को बदलें, लेकिन .NET 4.0 के RTM संस्करण के लिए v4.0.30319 का उपयोग करें। इसके अलावा, इसे इस कमांड लाइन तर्क के साथ चलाएं: /framework=4.0.30319
लांस फिशर

1
मुझे कमांड लाइन विकल्प /framework:net-4.0.30319 का उपयोग करके किस्मत बदलने के बजाय किस्मत थी। यह मददगार था इसलिए मैं नियंत्रित कर सकता था कि कौन से एप्लिकेशन 4.0 सीएलआर का उपयोग करते हैं और कौन सा नहीं।
केविन क्राउल

25

.NET 4 जारी होने के साथ, मैंने उपयोग किया

<supportedRuntime version="v4.0.30319" />

NUnit 2.5.4 में exe.config के बजाय आवश्यक रनटाइम, और loadFromRemoteResources टैग जैसा कि ऊपर दिखाया गया है और सभी ने अच्छी तरह से काम किया है। धन्यवाद!


17

आपको किसी फ़ाइल को संशोधित करने की आवश्यकता नहीं है

बस इस फ़ाइल को खोलें और सब कुछ ठीक काम करेगा

C: \ Program Files (x86) \ NUnit 2.5.10 \ bin \ net-2.0 \ nunit-x86.exe


साभार - मेरा मामला सुलझाया यूनिट परीक्षण संकलित x86 के लिए nunit के x86 संस्करण का उपयोग करना है। सीएलआर संस्करण चेतावनी एक रेड-हेरिंग थे। ननित 2.5.10 का उपयोग करना।
निगेल टच

यहाँ भी, किसी तरह x86 संस्करण का उपयोग करना है
गेविन

12

में NUnit 2.5.5 आप कमांड लाइन में विकल्प निर्दिष्ट कर सकते हैं /framework=net-4.0 और यह नवीनतम VS2010 के रिलीज के साथ बनाई गई नई विधानसभाओं के साथ संगत है।


3
मुझे यह काम करने के लिए कभी नहीं मिला है। मैंने देखा है कि लोग /framework:net-4.0.30319 और अन्य प्रकारों के सभी प्रकारों का उपयोग करते हैं। अच्छा होगा यदि वे साइट डॉक्स पर वास्तविक विकल्प शामिल करते हैं।
जेसन शॉर्ट

2
@ जेसन ऐसा प्रतीत होता है कि यह केवल कंसोल संस्करण पर काम करता है। GUI संस्करण में यह विकल्प नहीं है।
रोमन स्टार्कोव

+1 यह उल्लेख करने के लिए कि यह संस्करण 2.5.5 से शुरू होता है! मेरे पास अपनी एक मशीन पर ArgumentException और NullReferenceException फेंकने वाला NUnit था, और यह पता चला कि यह संस्करण 2.5.0 के कारण था।
realMarkusSchmidt

2

NUnit को चलाने के लिए प्रस्तावित समाधान ने बहुत काम किया। दुर्भाग्य से, जब मैं अपने कोड कवरेज कदम के लिए मिला, तो NCover ने मुझे देना शुरू कर दिया:

प्रमाणित प्रक्रिया को समाप्त कर दिया गया। प्रोफाइलर कनेक्शन स्थापित नहीं किया गया।

सबसे अच्छा समाधान मुझे यह मिला कि एनसीओवर के साथ NUnit के "-x86" संस्करण का उपयोग करना था:

NCover.Console.exe nunit -sole-x86.exe --adaditional params--

अब काम करता है।


1
इसके लिए धन्यवाद, मैं एक ही मुद्दे का सामना कर रहा था, आपके फिक्स ने इसे हल कर दिया!
क्यूबनीक्स

2

दृश्य [C # 2010 एक्सप्रेस, या जो कभी] से अपने .net 4 संस्करण को खोजने के लिए मेनू के हेल्प आइटम के तहत विजुअल एप्लिकेशन के "अबाउट" पर जाएं। यह विंडो के शीर्ष दाईं ओर Microsoft .NET फ्रेमवर्क लाइन के तहत संस्करण के रूप में दिखाना चाहिए।


1

मैं NUnit 2.4.8 को चलाते समय एक ही त्रुटि संदेश में भाग गया। जैसा कि मैंने कुछ समय में अपग्रेड नहीं किया था, मैंने वर्तमान NUnit (v2.5.9) स्थापित किया और पाया कि यह अब VS2015 विधानसभाओं का समर्थन करता है। इसलिए यदि आपने नई त्रुटि का सामना किया है तो अपने NUnit संस्करण की जाँच करें : दिसंबर 2010 तक (या तो) केवल एक चीज जो आपको करने की आवश्यकता है वह है NUnit को अपग्रेड करना।


मैं 15/03/2011 को डाउनलोड किया गया NUnit 2.5.9 चला रहा हूं और यह समस्या मेरे लिए दूर नहीं जाएगी। यहां तक ​​कि अगर मैं प्रस्तावित समाधान की कोशिश करता
हूं

1

2.5.2 NUnit के रूप में आप GUI धावक में दृश्य स्टूडियो समर्थन को सक्षम कर सकते हैं:

उपकरण-> सेटिंग्स-> आईडीई समर्थन

उसके बाद मैं nunit-agent.exe प्रक्रिया को सफलतापूर्वक संलग्न करने में सक्षम था जो आपकी विधानसभा को .NET 4.0 ऐप डोमेन में चलाता है


0

यदि आप इस मुद्दे को 2.5.5 पर अपग्रेड करने के बाद अनुभव करते हैं तो आपको मेरे लिए नवीनतम संस्करण में एनएटी को अपग्रेड करना होगा।


0

मुझे NUnit एप्लिकेशन टेम्प्लेट से शुरू करने के लिए उपयोगी पाया गया । यह वीएस सी # एक्सप्रेस का समर्थन करता है, डिबगिंग परीक्षणों की अनुमति देता है और इसमें .NET 4.0 के लिए पूर्वनिर्धारित NUnit होता है। लेखक के लिए धन्यवाद नई परीक्षा परियोजना एक क्लिक के साथ तैयार हो जाती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.