नहीं मिल रहा है मैं निम्नलिखित परियोजना संरचनाDjango py.test सेटिंग्स मॉड्यूल
base
__init.py
settings
__init__.py
settings.py
tests
pytest.ini
test_module.py
है
मेरे pytest.ini
इस तरह दिखता है:
[pytest]
#DJANGO_SETTINGS_MODULE =base.settings.settings
मेरे test_module.py
इस तरह दिखता है:
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
assert 3==5
जब मैं अब चलाता हूं:
py.test
यह बिना किसी समस्या के आयात चलाएगा और assert 3==5
(अपेक्षित के रूप में) में एक त्रुटि उठाएगा। यह मुझे बताता है कि आधार sys.path
पर है और base.settings.settings
आयात किया जा सकता है।
def test_django():
from base.settings import settings as base_settings
from django.conf import settings as django_settings
print django_settings.xxx
assert 3==5
जब मैं अब चलाएँ::
अब मैं test_module.py
करने के लिए बदल
py.test --ds=base.settings.settings
मैं त्रुटि मिलती है:
ERROR: Could not import settings 'base.settings.settings' (Is it on sys.path?): No module named base.settings.settings.
ही प्रभाव है जब मैं सेट नहीं करते कमांड लाइन के माध्यम से सेटिंग्स, लेकिन pytest.ini
फ़ाइल (लाइन को असम्बद्ध करके) के माध्यम से।
ऐसा लगता है कि मुझे यहां कुछ याद आ रहा है ???
py.test sys.path से वर्तमान निर्देशिका को नहीं हटाता है, यह पाइथन का व्यवहार है: जब एक स्क्रिप्ट निष्पादित करते हैं (इस मामले में py.test) स्क्रिप्ट की निर्देशिका sys.path में जोड़ दी जाती है। इंटरैक्टिव रूप से निष्पादित करते समय वर्तमान कार्यशील निर्देशिका sys.path में जोड़ दी जाती है। – flub