2010-07-15 13 views
7

Dies scheint wie ein Kinderspiel, und ich bin zögerlich zuzugeben, dass ich etwa zwei Stunden lang versucht habe, die Antwort zu finden, aber ich kann nicht herausfinden, wie man Tests auf Projektebene für ein Django-Projekt ausführen.Wie kann ich Tests auf Django-Projektebene durchführen?

Nur um klar zu sein, laufen Tests für die Apps im Projekt kein Problem. Ich verstehe './manage.py test', aber es findet die Tests auf Projektebene, die ich geschrieben habe, nicht.

Ich habe versucht, die Tests auf Projektebene in 'my-django-project/tests.py' und 'my-django-project/tests/testcode.py' zu setzen, aber diese Tests wurden nicht gefunden. Was vermisse ich?

Antwort

1

Während in Django nichts eingebaut ist, findet und führt Django-nose Tests auf Projektebene sowie alle Unterverzeichnisse durch. Leider findet es keine Tests für installierte Apps, die nicht in einem Unterverzeichnis des Projektverzeichnisses liegen.

Installationsanleitung finden sich unter: http://pypi.python.org/pypi/django-nose/0.1

2

So etwas gibt es nicht. Legen Sie alle Ihre Tests in eine App.

1

./manage.py test verwendet werden kann, beliebigen Python-Code auszuführen, was bedeutet, Sie können es projektweite Tests durchführen, wenn Sie wollen. Eine Unterklasse von DjangoTestSuiteRunner, die die projektweiten Tests findet und auch ausführt, sollte den Trick machen. Wenn es sich bei diesen projektweiten Tests um Modelle handelt, möchten Sie sie wahrscheinlich in eine der entsprechenden Apps einfügen.

https://docs.djangoproject.com/en/dev/topics/testing/advanced/#using-different-testing-frameworks

EDIT: Django 1.6 können Tests überall entdecken. https://docs.djangoproject.com/en/dev/releases/1.6/#discovery-of-tests-in-any-test-module

Verwandte Themen