Une fois l'exécution des tests terminée à l'aide de Django's manage.py test
commande seul le nombre de tests réussis est imprimé sur la console.
(virtualenv) G:\Project\>python manage.py test
Creating test database for alias 'default'...
True
..
----------------------------------------------------------------------
Ran 2 tests in 0.017s
OK
Destroying test database for alias 'default'...
Existe-t-il un moyen de voir:
Je n'ai trouvé aucune solution dans le doc.
Tu peux passer -v 2
à la commande test
:
python manage.py test -v 2
Après avoir exécuté cette commande, vous obtiendrez quelque chose comme ceci (j'utilise Django 2, n'hésitez pas à ignorer les migrations/les trucs de base de données):
Creating test database for alias 'default' ('file:memorydb_default?mode=memory&cache=shared')...
Operations to perform:
Synchronize unmigrated apps: messages, staticfiles
Apply all migrations: admin, auth, contenttypes, sessions
Synchronizing apps without migrations:
Creating tables...
Running deferred SQL...
Running migrations:
Applying contenttypes.0001_initial... OK
...
Applying sessions.0001_initial... OK
System check identified no issues (0 silenced).
test_equal_hard (polls.tests.TestHard) ... ok <--------+
test_equal_simple (polls.tests.TestSimple) ... ok <--------+
|
|
That's your tests! >----------------------------+
Soit dit en passant, v
signifie verbosité (vous pouvez également utiliser --verbosity=2
):
python manage.py test --verbosity=2
Voici l'extrait du python manage.py test --help
:
-v {0,1,2,3}, --verbosité {0,1,2,3}
Niveau de verbosité; 0 = sortie minimale, 1 = sortie normale, 2 = sortie détaillée, 3 = sortie très détaillée
La réponse de Nigel est excellente et certainement l'option de barrière à l'entrée la plus basse. Cependant, vous pouvez obtenez des commentaires encore meilleurs avec Django_nose
(et ce n'est pas ça difficile à configurer;).
Ce qui suit est de: BDD avec Python
Premièrement: installez certaines exigences:
pip install nose pinocchio Django_nose
Ajoutez ensuite ce qui suit à settings.py
TEST_RUNNER = 'Django_nose.NoseTestSuiteRunner'
NOSE_ARGS = ['--with-spec', '--spec-color']
Exécutez ensuite vos tests comme d'habitude:
python manage.py test
La sortie devrait ressembler à ceci:
Remarque: Les commentaires sous vos tests peuvent être utilisés pour donner une sortie encore meilleure que juste le nom.
par exemple.:
def test_something(self):
"""Something should happen"""
...
Sortira "Quelque chose devrait arriver" lors de l'exécution du test.
Pour des points supplémentaires: Vous pouvez également générer/produire votre couverture de code:
pip install coverage
Ajoutez ce qui suit à votre NOSE_ARGS dans settings.py: '--with-coverage', '--cover-html', '--cover-package=.', '--cover-html-dir=reports/cover'
par exemple.:
NOSE_ARGS = ['--with-spec', '--spec-color',
'--with-coverage', '--cover-html',
'--cover-package=.', '--cover-html-dir=reports/cover']
Ensuite, vous obtiendrez un bon résumé de la couverture du code lorsque vous exécutez python manage.py test
ainsi qu'un rapport html soigné dans reports/cover