unit testing - How can I access relative paths in Python 2.7 when imported by different modules -


लक्ष्य: एक ही अस्थायी फाइलों को एक्सेस / लिखें, जब से आम उपयोगिता फ़ंक्शन का उपयोग किया जाता है विभिन्न अजगर मॉड्यूल।

पृष्ठभूमि: मैं python का प्रयोग कर रहा हूं, जो कस्टम परीक्षणों के सेट को चलाने के लिए यूनिटेस्ट मॉड्यूल का उपयोग करता है जो कि पीएसएसआरियल के माध्यम से इंस्ट्रूमेंटेशन के साथ अंतरफलक है। क्योंकि मैं unittest मॉड्यूल का उपयोग कर रहा हूं, मैं आवश्यक चर को पास करने में असमर्थ हूं, जैसे कि सीरियल पोर्ट का उपयोग करने के लिए, यूनिटस्ट टेस्ट केस में। इसके चारों ओर जाने के लिए मैं एक मॉड्यूल बनाने की इच्छा रखता हूं जो स्टोर करता है और मसालेदार डेटा देता है। मैंने इस मुद्दे में भाग लिया है कि जब मैं test_case_1 () से get_foo () फ़ंक्शन कॉल करता हूं, तो यह test_case_1 () पर आधारित सापेक्ष पथ से मसालेदार डेटा को लोड करने का प्रयास करता है, न कि वास्तविक मॉड्यूल जिसमें get_foo () शामिल है।

यह ध्यान देने योग्य है कि मैंने वैश्विक वैरिएबल्स का उपयोग करने पर विचार किया है, लेकिन एक मुट्ठी भर डेटा है जो मैं रन से चलाने के लिए बरकरार रखना चाहता हूं। जिसका मतलब है कि सभी अजगर मॉड्यूल बंद हो जाएंगे और मैं पिछले निष्पादन में संग्रहीत डेटा को फिर से लोड करना चाहता हूं।

मैं SO प्रश्न में: मैंने सोचा कि मैंने पहले जवाब में समाधान पाया। मेरे निराशा के लिए, यह मेरे लिए पायथन 2.7 (डेबियन) में काम नहीं कर रहा है

क्या अलग-अलग मॉड्यूल से कॉल किए जाने पर किसी विशिष्ट फ़ाइल के पथ को वापस करने का एक विश्वसनीय तरीका है? < / P>

शायद आप यह जानते हैं, लेकिन यहां मूल बातें पहले:

  # # फ़ाइल एक: main.py, आपके कार्य निर्देशिका में मुख्य प्रोग्राम # इस कोड को सीधे डायरेक्टरी नाम आयात ओएस प्राप्त करने के लिए आईडीएल के भीतर नहीं चलना चाहिए, mytest curdir = os.path.dirname (__ फ़ाइल__) प्रिंट '-' * 10, 'प्रोग्राम', '- 10 * प्रिंट' प्रोग्राम में 'curdir print' मॉड्यूल ', mytest.curdir प्रिंट' मॉड्यूल निर्देशिका में कॉन्फ़िगर सामग्री है: \ n ', mytest.config () इनपुट (' पुश प्रविष्ट करें ')   

मॉड्यूल

  ## फ़ाइल दो: mytest.py, पाथ या PYTHONPATH में कहीं मॉड्यूल आयात os curdir = os.path.dirname (__ फ़ाइल__) प्रिंट "टेस्ट मॉड्यूल डायरेक्टरी है" + curdir ## फ़ंक्शन, कॉल करने के लिए कॉन्फ़िग = ओपन (os.path.join (curdir, 'mycfg.cfg') कॉल करने के लिए नहीं)। "उदाहरण आउटपुट पढ़ें: परीक्षण मॉड्यूल निर्देशिका डी है: \ Py Thon परियोजनाएं ---------- कार्यक्रम ---------- डी में कार्यक्रम: \ परीक्षण मॉड्यूल डी में है: \ मॉड्यूल निर्देशिका में पायथन परियोजनाओं कॉन्फ़िगर सामग्री: [SECTIONTITLE] सेटिंग = 12 पुश "" ""     दर्ज करें

Comments