2012-06-13 12 views
8

मैं विजुअल स्टूडियो में यूनिट परीक्षण के साथ नया हूं और मैं एक भौतिक xml फ़ाइल लोड करना चाहता हूं। यह फ़ाइल यूनिट परीक्षण प्रोजेक्ट में एक सामग्री के रूप में है और इसकी आउटपुट निर्देशिका में कॉपी की गई है।इकाई परीक्षण आउटपुट निर्देशिका में सामग्री फ़ाइल जोड़ें

इसलिए, जब मैं प्रोजेक्ट संकलित करता हूं, तो xml फ़ाइल आउटपुट निर्देशिका में होती है। लेकिन जब मैं परीक्षण निष्पादित करता हूं, तो सभी निर्भर डीएलएल के साथ एक नई निर्देशिका बनाई जाती है, लेकिन xml फ़ाइल की प्रतिलिपि नहीं बनाई जाती है।

परीक्षण निष्पादित करने के लिए एक्सएमएल की सामग्री की आवश्यकता है।

private static string GetXmlFullName() 
{ 
    // GetApplicationPath use the current DLL to find the physical path 
    // of the current application 
    string executeDirectory = AssemblyHelper.GetApplicationPath(); 
    return Path.Combine(executeDirectory, "content.xml"); 
} 

अपवाद नहीं है:

System.IO.DirectoryNotFoundException: 'd:\***\solutiondirectory\testresults\*** 2012-06-13 17_59_53\out\content.xml'. 

मैं कैसे अमल फ़ोल्डर में इस फाइल को जोड़ सकते हैं मैं निष्पादन फ़ोल्डर में XML फ़ाइल का पथ को पुनः प्राप्त करने के लिए इस कोड को अंजाम?

अग्रिम धन्यवाद। (और मेरी अंग्रेजी के लिए खेद है ...)

+0

इस पोस्ट का डुप्लिकेट की तरह लग रहा डेटा फ़ोल्डर में सभी फ़ाइलों को शामिल करने के लिए //stackoverflow.com/questions/5383987/how-can-i-include- नमूना- डेटा- फाइल-in-vs-unit-tests – Clueless

+0

@Clueless: दरअसल। मुझे यह पोस्ट नहीं मिला। धन्यवाद। – Hyralex

+0

इसके अलावा - https://stackoverflow.com/questions/5581628/c-sharp-test-resources – sashoalm

उत्तर

6

आपको टेस्ट क्लास पर DeploymentItemAttribute रखने की आवश्यकता है। [इकाई परीक्षण में नमूना डेटा] [1] [1]: http:

उदाहरण के लिए

[TestClass()] 
[DeploymentItem("Data")] 
public class MyTestClass 
{ 
    ... 
} 
+0

बहुत आसान है। यह काम करता हैं। धन्यवाद। – Hyralex

+0

परिनियोजन इटैम विशेषता केवल तभी काम करेगी जब आइटम पर बिल्ड एक्शन सामग्री पर सेट हो और आउटपुट निर्देशिका में कॉपी को प्रतिलिपि बनाने के लिए सेट किया गया हो या हमेशा कॉपी करें। http://stackoverflow.com/a/9107244/74585 –

+0

मुझे समाधान आइटम -> Local.testsettings में परिनियोजन सक्षम करना था और उस निर्देशिका को जोड़ना था जिसे मैं तैनात करना चाहता था। ओह! –

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