2017-05-19 15 views
10

चलाते समय स्थानीय स्तर पर परीक्षण चल रहा है, लेकिन डॉकर बनाने और कंटेनर के अंदर चलने के बाद मुझे त्रुटि मिल रही है।त्रुटि प्राप्त करना importMismatchError py.test

/usr/local/lib/python3.5/site-packages/_pytest/config.py:325: in _getconftestmodules 
    return self._path2confmods[path] 
E KeyError: local('/apis/db/tests') 

During handling of the above exception, another exception occurred: 
/usr/local/lib/python3.5/site-packages/_pytest/config.py:356: in _importconftest 
    return self._conftestpath2mod[conftestpath] 
E KeyError: local('/apis/db/tests/conftest.py') 

During handling of the above exception, another exception occurred: 
/usr/local/lib/python3.5/site-packages/_pytest/config.py:362: in _importconftest 
    mod = conftestpath.pyimport() 
/usr/local/lib/python3.5/site-packages/py/_path/local.py:680: in pyimport 
    raise self.ImportMismatchError(modname, modfile, self) 

_pytest.config.ConftestImportFailure: ImportMismatchError('conftest', '/projects/my_project/db/tests/conftest.py', local('/apis/db/tests/conftest.py')) 

/apis - यह डॉकरफ़ाइल में वर्कडियर है।

+0

आपको शायद पाइथन आयात पथ या सिम्लिंक या जो भी हो, के साथ कुछ समस्याएं हैं। '/ परियोजना/my_project' क्या है और' apis' क्या है? क्या वे निर्देशिका या सिम्लिंक हैं? वे एक-दूसरे से कैसे जुड़े हैं? – MarSoft

+0

@MarSoft/परियोजनाएं होम निर्देशिका में हैं, और/apis डॉकर की होम निर्देशिका में है, बीटीडब्ल्यू मैंने इस मुद्दे को हल किया है। धन्यवाद! –

उत्तर

26

मैं समय पर और * .pyc फ़ाइलें भी परीक्षा/निर्देशिका के अंतर्गत सभी pycache pkg को हटाने के द्वारा, इस मुद्दे था जब मैं डोकर छवि बनाने गया था इसके उठा सब मेरी pycache यह तय कर दी है, जब परीक्षण चल रहे हैं यह डॉकर कंटेनर में पथ के बजाय मेरे स्थानीय मशीन पथ का उपयोग कर रहा है।

निष्कर्ष: डॉकर छवि बनाने से पहले अपने * .pyc और pycache फ़ाइलों को साफ़ करें।

एचटीएच

+0

आप इन प्रविष्टियों को अपनी '.dockerignore' फ़ाइल में डाल सकते हैं ताकि निर्माण चरण के दौरान उन्हें अनदेखा कर दिया जा सके। हालांकि स्थानीय संशोधनों सहित परीक्षण चलाने के लिए, यदि आप कंटेनर के अंदर अपने स्रोत फ़ोल्डरों को माउंट करते हैं तो भी उन्हें उठाया जाएगा। – giorgiosironi

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