2010-02-14 6 views
14

मुझे अभी भी import कथन के आसपास अपना सिर मिल रहा है। अगर मैं एक ही स्तर में 2 फ़ोल्डर:अगर मैथ्यू फ़ोल्डर्स में हैं तो परीक्षण किए गए मॉड्यूल आयात करने के लिए मेरे पायथन यूनिट परीक्षण कैसे करें?

  1. src
  2. परीक्षण

कैसे src में test आयात में py फ़ाइलों मॉड्यूल बनाने के लिए? वहाँ एक बेहतर समाधान है (जैसे एक के अंदर एक फ़ोल्डर में डाल दिया?)

+1

काफ़ी मिलती-जुलती प्रश्न: http://stackoverflow.com/questions/1896918/ –

उत्तर

9

कोड आप चाहते हैं src/module_name.py

from src import module_name 

उपयोग करने के लिए है और रूट निर्देशिका जैसे कि आपका PYTHONPATH पर है आप रूट निर्देशिका

से चलाते हैं आपकी निर्देशिका संरचना मैं उपयोग करता हूं लेकिन src के बजाय मॉडल नाम पसंद करता हूं। मैं J Calderone's blog और इसी तरह से A google blog

+0

यह = काम नहीं कर रहा ( –

+0

कर सकते हैं पैकेज (फ़ोल्डर) नाम के बीच में अंडरस्कोर भी है –

+1

, सुनिश्चित करें कि? src निर्देशिका एक '' __init __। py'' फ़ाइल जोड़कर एक पैकेज है। – codeape

7

को यह संरचना मिल गया इस आजमाएं:

import sys 
import os 
sys.path.append(os.path.join('..', 'src')) 
import module_in_src_folder 

किसी भी मंच

+0

डाउनवॉटेड क्योंकि इसमें पायथनपैथ के साथ गड़बड़ करना शामिल है। –

0

समर्थन करने के लिए संपादित मैं सभी अजगर परियोजनाओं के साथ ओ पी के रूप में बिल्कुल एक ही स्थिति है मैं लिखने:

  • परियोजना फ़ोल्डर
    1. src
    2. परीक्षण

सभी मॉड्यूल, चाहे स्रोत, या परीक्षण, या इनमें से सबफ़ोल्डर में हमेशा import के फार्म का उपयोग करें कि मार्क उसके जवाब में पता चलता है:

from src import module_name 

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

इसका मतलब है कि परीक्षण किसी भी अन्य ग्राहक की तरह हैं जो src से मॉड्यूल करना चाहता है।

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