Seite 1 von 1

doctest aus anderer datei aufrufen

Verfasst: Montag 13. April 2009, 17:29
von feuervogel
hallo,

ich teste meine django-applikation auch mit doctests. dort werden nur zwei dateien pro app nach doctests durchsucht, nämlich die models.py und die tests.py.

nun habe ich aber auch in der templatetags/math_extra.py doctests stehen, die leider nicht automatisch mit ausgeführt werden.

in der doku von django und den doctests habe ich leider nichst genaueres dazu gefunde, wie ich bewirke, dass auch die doctests in der templatetags/math_extra.py ausgeführt werden...

gibts dafür eine lösung?

Verfasst: Montag 13. April 2009, 18:28
von sma
Über `TEST_RUNNER` kann man in `settings.py` einstellen, was aufgerufen werden soll, wenn man `manage.py test` ausführt. Dort steht standardmäßig `django.test.simple.run_tests` und man könnte eine eigene Funktion angeben, die auch andere Dateien berücksichtigt. Ich finde den Code jedoch alles andere als übersichtlich und außer das ich sehe, dass `get_tests` genau ein Modul mit dem Namen aus `TEST_MODULE` lädt, bin ich da schnell verloren.

Einfacher ist vielleicht, einfach `python -m doctest -v yourfile.py` zu benutzen, was mit dem aktuellen Python 2.6.x funktioniert.

Stefan

Verfasst: Dienstag 14. April 2009, 15:06
von feuervogel
ich hab jetzt so viel rausgefunden: django nutzt eine modifizierte version von doctest (zu finden in django.test._doctest).
These changes allow for a DoctestRunner and Doctest base
class to be specified when constructing a DoctestSuite.
und soweit wollte ich mich dann doch nicht einlesen. ich glaube ich schreibe mir lieber ein kleines tests.sh, um die tests nacheinander aufzurufen, so wie ich das möchte. vielen dank jedenfalls für die antwort.