web-dev-qa-db-fra.com

Nosetests capture la sortie de mes déclarations d'impression. Comment contourner cela?

Quand je tape

$ nosetests -v mytest.py

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

Donc, ce que je fais est de forcer une erreur d'assertion à 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)

On se sent tellement mal, il doit y avoir un meilleur moyen. Eclaire-moi s'il te plaît.

140
Frankie Ribery

Non plus:

$ nosetests --nocapture mytest.py

Ou:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(il peut aussi être spécifié dans le nose.cfg fichier, voir nosetests --help)

216
codeape

Utilisation

--nologcapture 

ça a fonctionné pour moi

15
Damian

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

nosetests -s

9
moeabdol

Afin d'intégrer avec http://travis-ci.org je l'ai mis dans . Travis.yml :

script:  "python setup.py nosetests -s"

setup.py contient:

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