nosetests przechwytuje wyniki moich wydruków. Jak to obejść?

142

Kiedy piszę

$ nosetests -v mytest.py

wszystkie moje wydruki są przechwytywane po przejściu wszystkich testów. Chcę zobaczyć wydruki, nawet wszystko przechodzi.

Więc to, co robię, to wymuszenie błędu asercji, aby zobaczyć wyjście, w ten sposób.

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)

To takie hakerskie uczucie, musi być lepszy sposób. Oświeć mnie, proszę.

Frankie Ribery
źródło
Masz pomysł, jak to zrobić programowo?
Yauhen Yakimovich

Odpowiedzi:

219

Zarówno:

$ nosetests --nocapture mytest.py

Lub:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(można go również określić w nose.cfgpliku, patrz nosetests --help)

codeape
źródło
3
Dzięki za przydatną odpowiedź. Przydało mi się również wiedzieć, że mogę przekazać ten argument do nose.main (), jak opisano w poście: stackoverflow.com/questions/7070501/…
David Hall
1
Na wypadek, gdyby ktoś chciał zobaczyć źródło: nos.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista,
12
Krótka wersja tego polecenia to nosetests -s. Inne standardowe opcje można znaleźć w -hpomocy lub na stronie pomocy dotyczącej podstawowego użytkowania .
dbn
python3,5 -m "nos" --nocapture
Alex Punnen
1
nie działa dla mnie, nawet przy tej opcji moje instrukcje drukowania nie są drukowane po przejściu testu
John Smith Opcjonalnie
16

Posługiwać się

--nologcapture 

to działało dla mnie

Damian
źródło
9

To zostało dodane niedawno do nosa zamiast --nocapture zrób to:

nosetests -s

moeabdol
źródło
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem.
Bhargav Rao
7
@BhargavRao "do this nosetests -s" odpowiada na pytanie (aczkolwiek bez najmniejszej uwagi na gramatykę). nie jestem pewien, dlaczego się sprzeciwiasz.
dbliss
1
Zauważ, że -sjest to jednoliterowy skrót --nocaptureflagi zgodnie z dokumentacją .
joelostblom
3

W celu integracji z http://travis-ci.org umieściłem to w .travis.yml :

script:  "python setup.py nosetests -s"

gdzie setup.py zawiera:

setup(
    ...
    tests_require=['nose>=1.0'],
    test_suite='nose.collector',
)
Yauhen Yakimovich
źródło