Quand je passe des tests avec ./manage.py test
, tout ce que j'envoie à la sortie standard via print
ne montre pas. Lorsque les tests échouent, je vois un bloc "stdout" par test échoué, donc je suppose Django le piège (mais ne le montre pas lorsque des tests passent).
Vérifié TEST_RUNNER
dans settings.py
, il utilise un coureur spécifique au projet qui appelle au nez. Nose a le -s
option pour l'arrêter de capturer stdout
, mais si je cours:
./manage.py test -s
manage.py
Cela le capture en premier et jette une erreur "Aucune telle option". L'aide pour manage.py
ne mentionne pas cela, mais j'ai trouvé que si je cours:
./manage.py test -- -s
il ignore le -s
Et me permet de la capturer sur le côté du coureur sur mesure, le transmettant au nez sans problème.
Ouais, ce problème est causé par NoseTestSuiteRunner
. Ajouter -- -s
est délicat et pas la meilleure solution. Essayez d'ajouter les lignes suivantes dans le settings.py
:
NOSE_ARGS = ['--nocapture',
'--nologcapture',]
Cela a résolu mes problèmes.
En utilisant des versions actuelles de tous les packages pertinents (Django==1.11.2
, Django-nose==1.4.5
et nose==1.3.7
) Il suffit d'ajouter le --nocapture
Drapeau lors de vos tests. Ainsi un simple
./manage.py test --nocapture
suffira.
Accordé bien sûr que vous avez
TEST_RUNNER = "Django_nose.NoseTestSuiteRunner"
dans ton settings.py