Wenn ich versuche python manage.py test
in meinem Django (1.4) Projekt auszuführen, erhalte ich die Fehlermeldung:Testing einziges Projekt in Django
ERROR: test_site_profile_not_available (django.contrib.auth.tests.models.ProfileTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/slacy/src/tmp/env/local/lib/python2.7/site-packages/django/contrib/auth/tests/models.py", line 29, in test_site_profile_not_available
del settings.AUTH_PROFILE_MODULE
File "/home/slacy/src/tmp/env/local/lib/python2.7/site-packages/django/utils/functional.py", line 215, in __delattr__
delattr(self._wrapped, name)
AttributeError: AUTH_PROFILE_MODULE
Dies ist documented in einem Bug Django, mit einem recomendation nur testspezifischen Anwendungen anstelle von allem. Mein Projekt hat jedoch keine Apps, die models.py
befindet sich einfach im Projektstamm. Um eine bestimmte App in Django zu testen, sieht es aus wie this:
$ ./manage.py test animals
Note that we used animals, not myproject.animals.
was bedeutet, dass es nicht möglich ist, das Stammverzeichnis angeben, zu testen. Wie würde ich nur mein Projektverzeichnis testen?
Beachten Sie, dass dieser Fehler Teil einer larger discussion on unit testing discovery ist.
Ab Django 1.6 gibt es einen [neuen Test discover runner] (https://docs.djangoproject.com/de/dev/releases/1.6/#discovery-of-tests-in-any-test-module) macht genau das, was django-discover-runner für 1,5 und darunter macht. – alfetopito