Ich schreibe eine wiederverwendbare Django-App. Es ist keine gewöhnliche App, die alleine benutzt werden kann. Es erfordert, dass andere Apps wie django.contrib.admin oder django-dajaxice verwendet werden können.Funktionelle Tests in wiederverwendbaren Django-Apps
Mein aktuelles Projekt Baum sieht wie folgt aus:
django-myapp/
docs/
some.rst
docs.rst
...
myapp/
static/
myapp/
some_js_stuff.js
templatetags/
some_file.py
__init__.py
base.py
manager.py
...
unit_tests/
__init__.py
test_base.py
test_manager.py
functional_tests/
__init__.py
functional_tests.py
urls.py
README.rst
LICENSE
requirements.txt
requirements-test.txt
setup.py
...
Unit-Tests sind einfach - ich bin mein Code nur zu testen, so brauche ich nicht vollständig Django-Umgebung, um sie auszuführen. Einfache ./setup.py test
funktioniert perfekt.
Funktionsprüfung ist der knifflige Teil. Ich möchte Selen verwenden, also brauche ich einen laufenden Dev-Server und das erfordert eine ganze Django-Umgebung. Ich versuche django.test.LiveServerTestCase
zu verwenden, aber ohne Erfolg (Es sieht so aus, als wären keine URLs definiert, die Einstellung ROOT_URLCONF
in settings
und urls
Attribut in der Klasse hat nicht geholfen).
Jede Dokumentation, die ich gefunden habe, jede Frage zu stackoverflow sagt über das Testen von Django-Apps im Django-Projekt. Und hier ist meine Frage: Was ist der beste (und funktionierende) Weg, Funktions-/Integrationstests von wiederverwendbaren Apps auszuführen, ohne ein komplettes Django-Projekt einzurichten?
Ich nehme an, Sie haben eine lokale Entwicklungsversion, die gut funktioniert? 'LiveServerTestCase' erfordert im Wesentlichen eine funktionierende Entwicklungsumgebung, verwendet jedoch eine Testdatenbank und führt für jeden ausgeführten Test den Standard-Setup/-Teardown durch. Es ist schwierig, Funktionstests an etwas durchzuführen, das nicht funktioniert. –