nosetests capture la sortie de mes instructions d'impression. Comment contourner cela?

142

Quand je tape

$ nosetests -v mytest.py

toutes mes sorties d'impression sont capturées lorsque tous les tests réussissent. Je veux voir les sorties d'impression même si tout passe.

Donc ce que je fais est de forcer une erreur d'assertion pour voir la sortie, comme ceci.

class MyTest(TestCase):

    def setUp(self):
        self.debug = False

    def test_0(self):
        a = .... # construct an instance of something
        # ... some tests statements
        print a.dump()
        if self.debug:
            eq_(0,1)

C'est tellement hackish qu'il doit y avoir un meilleur moyen. Éclairez-moi s'il vous plaît.

Frankie Ribéry
la source
Une idée comment le faire par programme?
Yauhen Yakimovich

Réponses:

219

Soit:

$ nosetests --nocapture mytest.py

Ou:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(il peut également être spécifié dans le nose.cfgfichier, voir nosetests --help)

codeape
la source
3
Merci pour la réponse utile. J'ai également trouvé utile de savoir que je pouvais passer cet argument dans nose.main () comme décrit dans l'article: stackoverflow.com/questions/7070501/…
David Hall
1
Au cas où quelqu'un voudrait voir la source: nose.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista
12
La version courte de cette commande est nosetests -s. Pour d'autres options standard, consultez l' -haide ou la page d'aide sur l' utilisation de base .
dbn le
python3.5 -m "nez" --nocapture
Alex Punnen
1
ne fonctionne pas pour moi, même avec cette option, mes instructions d'impression ne sont pas imprimées lorsque les tests réussissent
John Smith Facultatif
16

Utilisation

--nologcapture 

ça a marché pour moi

Damian
la source
9

Cela a été ajouté récemment au nez au lieu de --nocapture faire ceci:

nosetests -s

moeabdol
la source
Cela ne répond pas à la question. Pour critiquer ou demander des éclaircissements à un auteur, laissez un commentaire sous sa publication.
Bhargav Rao
7
@BhargavRao "do this nosetests -s" répond à la question (bien que sans le moindre souci de grammaire). je ne sais pas pourquoi vous vous opposez.
dbliss
1
Notez qu'il -ss'agit de l'abréviation à une seule lettre de l' --nocaptureindicateur selon la documentation .
joelostblom
3

Afin de s'intégrer à http://travis-ci.org, j'ai mis ceci dans .travis.yml :

script:  "python setup.py nosetests -s"

setup.py contient:

setup(
    ...
    tests_require=['nose>=1.0'],
    test_suite='nose.collector',
)
Yauhen Yakimovich
la source