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.


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)


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


9

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

nosetests -s


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',
)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.