Tests ausführen

In Django ist bereits ein Framework für Softwaretests integriert - das “Python unit testing framework”.

Der Test Runner erstellt bei jeden Start eine SQLite Datenbank für die Tests und lässt alle Tests voneinander abgekapselt in Transaktionen laufen. Bei der Auswahl des Datenbanksystems richtet sich der Test Runner nach dem Backend, der in der settings.py konfiguriert wurde.

Tests für alle Applikationen durchführen

Mit dem Befehl python manage.py test werden alle für das Projekt installierten Applikationen getestet:

$ python manage.py test
Creating test database for alias 'default'...
.........................................................................
.........................................................................
.........................................................................
.........................................................................
..............................
----------------------------------------------------------------------
Ran 322 tests in 3.293s

OK
Destroying test database for alias 'default'...

Tests für eine Applikation durchführen

Man kann auch gezielt eine Applikation testen:

$ python manage.py test recipes
Creating test database for alias 'default'...
..
----------------------------------------------------------------------
Ran 2 tests in 0.097s

OK
Destroying test database for alias 'default'...

Ausgabe der Tests verändern

Mit dem Parameter -v 0 wird der Großteil der Ausgaben des Test Runners unterdrückt:

$ python manage.py test recipes -v 0
----------------------------------------------------------------------
Ran 2 tests in 0.007s

OK

Umgekehrt kannst du mit dem Parameter -v 2 alle Details beim Ablaufen der Tests beobachten:

$ python manage.py test recipes -v 2
Creating test database for alias 'default' (':memory:')...
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table recipes_category
Creating table recipes_recipe_category
Creating table recipes_recipe
Installing custom SQL ...
Installing indexes ...
Installed 4 object(s) from 1 fixture(s)
test_basic_addition (recipes.tests.SimpleTest) ... ok
Doctest: recipes.tests.__test__.doctest ... ok

----------------------------------------------------------------------
Ran 2 tests in 0.008s

OK
Destroying test database for alias 'default' (':memory:')...

Inhalt

Vorheriges Thema

Softwaretests

Nächstes Thema

Doctests schreiben

Diese Seite