2010-05-27 9 views
5

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

समस्या: परीक्षण सामान्य असेंबली आउटपुट निर्देशिका से नहीं चल रहे हैं, बल्कि मेरे उपयोगकर्ता प्रोफ़ाइल में कुछ अस्थायी स्थान हैं।

इसलिए, मुझे वास्तव में नहीं पता कि फ़ाइल कहां देखना है - परीक्षण धावक इसे कॉपी नहीं करता है। क्या मैं इसे मजबूर कर सकता हूं?

उत्तर

4

लगता है जैसे आप छाया प्रतिलिपि विकल्प के साथ अपने परीक्षण चला रहे हैं।

रिशेर्पर-> विकल्प पर जाएं और यूनिट परीक्षण टैब (सूची के नीचे दाईं ओर) का चयन करें। "छाया-प्रतिसभा असेंबली का परीक्षण किया जा रहा है" अनचेक करें और पुनः प्रयास करें।

+0

:) धन्यवाद पर हाजिर था! –

+0

बहुत अच्छा जवाब है, लेकिन छाया प्रतिलिपि मुझे एक सुंदर साफ सुविधा है। फ़िक्स्चर सेट-अप से फ़ाइल को मैन्युअल रूप से कॉपी किए बिना कोई वैकल्पिक तरीका? – Wernight

6

एनयूनीट वेबसाइट असेंबली.कोडबेस संपत्ति का उपयोग करने के लिए इस सटीक मामले में अनुशंसा करती है, जो मुझे आवश्यक बिन/डीबग की ओर ले जाती है।

"नोट: यदि आप अपनी असेंबली के समान निर्देशिका में फ़ाइलों तक पहुंचने के लिए छाया प्रति को अक्षम करने का लुत्फ उठाते हैं, तो आपको अवगत होना चाहिए कि विकल्प हैं। असेंबली का उपयोग करने पर विचार करें। विधानसभा के बजाय कोडबेस संपत्ति। स्थान। "

.Location लौटे उरी शैली का पता "फ़ाइल: //// डी: // परियोजनाओं ..." है, इसलिए वास्तविक कोड मैं इस्तेमाल किया

string applicationDirectory = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath; 
+0

क्या आप उस पृष्ठ पर एक लिंक पोस्ट कर सकते हैं जिसे आपने उद्धरण दिया था? – blachniet

+0

यह उनका दस्तावेज है। वर्तमान संस्करण के लिए पृष्ठ [http://www.nunit.org/index.php?p=settingsDialog&r=2.6.1 ](http://www.nunit.org/index.php?p=settingsDialog&r=2.6 है। 1)। पृष्ठ अध्याय "टेस्ट लोडर सेटिंग्स - उन्नत" है, "छाया प्रतिलिपि" पर विवरण – Roman

+0

मेरे पास छाया प्रति विकल्प के साथ या उसके बिना एक ही परिणाम था, इसलिए मुझे इस समाधान के लिए जाना था और मेरी सभी परीक्षण फ़ाइलों के लिए एक पूर्ण पथ बनाना था 'Path.Combine (applicationDirectory, fileName) 'का उपयोग करके। – furier

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