2010-12-30 5 views
7

Hat jemand Erfahrung mit der Verwendung verschiedener Einstellungsdateien für den Django-Test-Runner in PyCharm?PyCharm 1.1 - spezifische Einstellungen für den Django-Test-Runner verwenden

Mein Projekt ist wie folgt:

+penguinproject 
+apps 
+settings 
--__init__.py 
--common.py # this one is imported by the others below 
--development.py 
--production.py 
--staging.py 
+static 
... 

die Tests mit einem manage.py Befehl ausführen (und das Hinzufügen von --settings = settings.development) funktioniert gut, aber ich möchte die eingebauten verwenden im Test Runner (wie es besser in die IDE integriert ist).

ich denke, das Problem ist, dass meine Einstellungen nicht richtig geladen werden, wie ich diesen Fehler:

E:\Development\django_projects\penguinproject\Scripts\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 1.1\helpers\pydev\pydevd.py" --client 127.0.0.1 --port 49898 --file "C:\Program Files (x86)\JetBrains\PyCharm 1.1\helpers\pycharm\django_manage.py" test items 
Testing started at 20:36 ... 
pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower) 
pydev debugger: starting 
E:\Development\django_projects\penguinproject\lib\site-packages\path.py:32: DeprecationWarning: the md5 module is deprecated; use hashlib instead 
import sys, warnings, os, fnmatch, glob, shutil, codecs, md5 
settings file: development 
pycharm django settings imported 
Manager file: manage 
Traceback (most recent call last): 
File "C:\Program Files (x86)\JetBrains\PyCharm 1.1\helpers\pydev\pydevd.py", line 1165, in <module> 
debugger.run(setup['file'], None, None) 
File "C:\Program Files (x86)\JetBrains\PyCharm 1.1\helpers\pydev\pydevd.py", line 929, in run 
execfile(file, globals, locals) #execute the script 
File "C:\Program Files (x86)\JetBrains\PyCharm 1.1\helpers\pycharm\django_manage.py", line 15, in <module> 
run_module(manage_file, None, '__main__') 
File "c:\python26\Lib\runpy.py", line 140, in run_module 
fname, loader, pkg_name) 
File "c:\python26\Lib\runpy.py", line 34, in _run_code 
exec code in run_globals 
File "E:\Development\django_projects\penguinproject\yabe\manage.py", line 11, in <module> 
execute_manager(settings) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager 
utility.execute() 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\core\management\__init__.py", line 379, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\core\management\base.py", line 191, in run_from_argv 
self.execute(*args, **options.__dict__) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\core\management\base.py", line 220, in execute 
output = self.handle(*args, **options) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\core\management\commands\test.py", line 37, in handle 
failures = test_runner.run_tests(test_labels) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\test\simple.py", line 396, in run_tests 
suite = self.build_suite(test_labels, extra_tests) 
File "E:\Development\django_projects\penguinproject\lib\site-packages\django\test\simple.py", line 285, in build_suite 
app = get_app(label) 
File "E:\Development\django_projects\penguinproject\lib\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 items could not be found 

ich diesen Fehler nicht manage.py aus der Befehlszeile erhalten Sie (Auch wenn ich von der IDE aus aufgerufen werde, denke ich, dass die Einstellungen von development.py nicht richtig geladen sind. Das Debugging zeigt, dass in get_app() (im Modul loading.py) settings.INSTALLED_APPS eine leere Liste ist.

Hat es jemand geschafft, den Test-Runner mit diesem Setup der Einstellungsdateien einzurichten?

Vielen Dank im Voraus!

+0

Ich glaube, ich in Eclipse hatte ein ähnliches Problem. Es muss Django verwendet werden und djanjo.setup() irgendwo ausgeführt werden. –

Antwort

0

Sie müssen eine models.py für diese Anwendung erstellen!

http://code.djangoproject.com/ticket/3310

+0

Es hat: das apps-Verzeichnis enthält alle notwendigen Dateien (tests.py, models.py, views.py, usw.), pro App. Wenn ich keine models.py-Datei hätte, würden die Tests, die von der Befehlszeile aus ausgeführt wurden, auch nicht funktionieren. – LaundroMat

1

würde ich eine leichte Änderung Ihrer Projektstruktur vor. lesen Sie in dieses viel, viel detaillierteres Beispiel:

http://www.revsys.com/blog/2014/nov/21/recommended-django-project-layout/

Sie werden sehen, es ist ein Top-Level-Verzeichnis und ein subdir mit dem gleichen Namen, in der alle nachfolgenden Einstellungsdateien gehen.

für noch eine weitere Referenz, klicke auf ‚startproject‘ Befehl, der verwendet werden kann, die erste Projektstruktur zu erstellen:

https://docs.djangoproject.com/en/1.10/ref/django-admin/#django-admin-startproject

HTH