Nosetests está capturando a saída das minhas declarações de impressão. Como contornar isso?


142

Quando digito

$ nosetests -v mytest.py

todas as minhas impressões são capturadas quando todos os testes passam. Quero ver as saídas de impressão, mesmo que tudo passe.

Então, o que estou fazendo é forçar um erro de asserção para ver a saída, assim.

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)

Parece tão hackish, deve haver uma maneira melhor. Esclareça-me, por favor.


Alguma idéia de como fazê-lo programaticamente?
Yauhen Yakimovich

Respostas:


219

Ou:

$ nosetests --nocapture mytest.py

Ou:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(também pode ser especificado no nose.cfgarquivo, consulte nosetests --help)


3
Obrigado pela resposta útil. Eu também achei útil saber que eu poderia passar este argumento em nose.main () conforme descrito no post: stackoverflow.com/questions/7070501/...
David Hall


12
A versão curta deste comando é nosetests -s. Para outras opções padrão, consulte a -hajuda ou a página de ajuda sobre o uso básico .
DBN

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

1
não funciona para mim, mesmo com essa opção, minhas instruções de impressão não são impressas quando os testes passam
John Smith Opcional:


9

Isso foi adicionado recentemente ao nariz, em vez de --nocapture, faça o seguinte:

nosetests -s


Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
Bhargav Rao

7
O @BhargavRao "faz isso nosetests -s" responde à pergunta (embora sem a menor consideração pela gramática). Não sei por que você está fazendo objeções.
dbliss

1
Observe que -sé a abreviação de letra única da --nocapturebandeira, conforme a documentação .
Joelostblom 11/1118

3

Para integrar com http://travis-ci.org , coloquei isso em .travis.yml :

script:  "python setup.py nosetests -s"

onde setup.py contém:

setup(
    ...
    tests_require=['nose>=1.0'],
    test_suite='nose.collector',
)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.