nosetests está capturando el resultado de mis declaraciones impresas. ¿Cómo evitar esto?


142

Cuando escribo

$ nosetests -v mytest.py

todas mis salidas de impresión se capturan cuando pasan todas las pruebas. Quiero ver resultados de impresión, incluso todo pasa.

Entonces, lo que estoy haciendo es forzar un error de aserción para ver el resultado, como este.

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)

Se siente tan hackear, debe haber una mejor manera. Iluminame por favor.


¿Alguna idea de cómo hacerlo programáticamente?
Yauhen Yakimovich

Respuestas:


219

Ya sea:

$ nosetests --nocapture mytest.py

O:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(también se puede especificar en el nose.cfgarchivo, ver nosetests --help)


3
Gracias por la útil respuesta. También me pareció útil saber que podría pasar este argumento a nose.main () como se describe en la publicación: stackoverflow.com/questions/7070501/…
David Hall

1
En caso de que alguien quiera ver la fuente: nose.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista

12
La versión corta de este comando es nosetests -s. Para otras opciones estándar, consulte la -hayuda o la página de ayuda de uso básico .
dbn

python3.5 -m "nose" --nocapture
Alex Punnen

1
no funciona para mí, incluso con esta opción, mis declaraciones impresas no se imprimen cuando pasan las pruebas
John Smith Opcional


9

Esto se agregó recientemente a nose en lugar de --nocapture, haga esto:

pruebas de nariz -s


Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar una aclaración de un autor, deje un comentario debajo de su publicación.
Bhargav Rao

77
@BhargavRao "do this nosetests -s" responde a la pregunta (aunque sin la menor consideración por la gramática). No estoy seguro de por qué te estás oponiendo.
dbliss

1
Tenga en cuenta que -ses la abreviatura de una letra de la --nocapturebandera según la documentación .
joelostblom

3

Para integrarme con http://travis-ci.org , he puesto esto en .travis.yml :

script:  "python setup.py nosetests -s"

donde setup.py contiene:

setup(
    ...
    tests_require=['nose>=1.0'],
    test_suite='nose.collector',
)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.