2011-06-26 10 views
11

मुझे subfolder में समूहित django ऐप्स परीक्षण के साथ समस्या है।subfolder में django अनुप्रयोग का परीक्षण कैसे करें?

ठीक है, मुझे स्थिति समझाएं।

Standart Django परियोजना संरचना इस तरह दिखता है:

django_project/ 
--appname1 
--appname2 
--appname3 
--lib 
--tests 
--docs 
settings.py 
etc... 

जब इस परियोजना संरचना standart तुम सिर्फ परियोजना dir में आदेश टाइप करके appname1 के लिए परीक्षण चलाने कर सकते हैं:

python2 manage.py test appname1` 

हम सब का निर्णय लिया सबफ़ोल्डर में ऐप्स, इसलिए हमारी परियोजना संरचना इस तरह दिखती है:

django_project/ 
--apps/ 
----appname1 
----appname2 
----appname3 
--lib 
--tests 
--docs 
settings.py 
etc... 

सभी ठीक काम करते हैं, लेकिन हम ऐप्स के लिए परीक्षण नहीं चला सकते हैं। मैं सफलता के बिना आदेशों folowing की कोशिश की है:

python2 manage.py test appname1 
python2 manage.py test apps/appname1 
python2 manage.py test apps.appname1 

वहाँ परीक्षण क्षुधा है कि सबफ़ोल्डर में रखा, या हम उन्हें चलाने के लिए खुद का आदेश लिखना चाहिए के लिए manage.py का उपयोग कर चलाने के लिए कोई तरीका है?

युपीडी:

हम त्रुटि निम्नलिखित है:

Traceback (most recent call last): 
    File "manage.py", line 18, in <module> 
    management.execute_manager(settings) 
    File "/opt/python266/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "/opt/python266/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/opt/python266/lib/python2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "/opt/python266/lib/python2.6/site-packages/django/core/management/base.py", line 220, in execute 
    output = self.handle(*args, **options) 
    File "/opt/python266/lib/python2.6/site-packages/django/core/management/commands/test.py", line 37, in handle 
    failures = test_runner.run_tests(test_labels) 
    File "/opt/python266/lib/python2.6/site-packages/django/test/simple.py", line 312, in run_tests 
    suite = self.build_suite(test_labels, extra_tests) 
    File "/opt/python266/lib/python2.6/site-packages/django/test/simple.py", line 244, in build_suite 
    app = get_app(label) 
    File "/opt/python266/lib/python2.6/site-packages/django/db/models/loading.py", line 140, in get_app 
    raise ImproperlyConfigured("App with label %s could not be found" % app_label) 
django.core.exceptions.ImproperlyConfigured: App with label appname1 could not be found 

हम ऐप्लिकेशन इंस्टॉल करने की तरह स्थापित करने:

INSTALLED_APPS = (
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'project_name.apps.appname1', 
'project_name.apps.appname2', 
'project_name.apps.appname3', 
) 

उत्तर

16

आप अपने ऐप फ़ोल्डर के अंतर्गत इन फ़ाइलों की जरूरत है दोनों:

__init__.py 
models.py 

वे कर सकते हैं खाली रहो

0

यकीन apps एक __init__.py है बनाओ। आप एप्लिकेशन नाम से अपने परीक्षण चलाने के लिए सक्षम होना चाहिए:

python2 manage.py test appname1 

यह Django 1.3 के तहत काम करता है, मैं किसी भी अन्य संस्करणों का परीक्षण नहीं किया।

+0

हम django1.3 का उपयोग करें ... –

2

आपको क्या त्रुटि मिलती है? और settings.py में आपके INSTALLED_APPS के तहत आपके पास क्या है?

अगर आप apps निर्देशिका में तरह

INSTALLED_APPS = (
    'django.contrib.auth', 
    ... 
    'apps.appname1', 
    'apps.appname2', 
) 

और __init__.py कुछ है तो यह काम करना चाहिए।

+0

मैं सवाल का विवरण शामिल किया है एक टपल में शामिल है। –

0

यह उत्तर के रूप में थोड़ा देर हो गया है, लेकिन भविष्य में अन्य पीपों के भविष्य के संदर्भ के लिए मैं एक ही समस्या में भाग रहा था, और पाया कि मुझे ऐप में खाली models.py फ़ाइल जोड़ने की आवश्यकता है। (यह किसी भी डेटाबेस तालिकाओं की जरूरत नहीं किया, लेकिन एक models.py नहीं होने का मतलब है कि परीक्षण धावक यह उठा नहीं था।)

1

बस एक ध्यान दें, settings.py फ़ाइल इतना समाप्ति चरित्र ')' होना चाहिए नहीं '}'

+0

धन्यवाद, प्रश्न संपादित किया गया। –

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