nosetests, baskı ifadelerimin çıktısını alıyor. Bunu nasıl atlayabiliriz?


142

Yazdığımda

$ nosetests -v mytest.py

tüm testler geçtiğinde tüm baskı çıktılarım yakalanıyor. Her şeyi geçse bile baskı çıktılarını görmek istiyorum.

Yani yaptığım şey, çıktıyı görmek için bir iddia hatasını zorlamaktır.

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)

Çok acayip hissettiriyor, daha iyi bir yol olmalı. Aydınlat lütfen.


Programlı olarak nasıl yapılacağı hakkında bir fikriniz var mı?
Yauhen Yakimovich

Yanıtlar:


219

Ya:

$ nosetests --nocapture mytest.py

Veya:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

( nose.cfgdosyada da belirtilebilir , bkz. nosetests --help)


3
Yararlı cevap için teşekkürler. Ayrıca, bu argümanı yayında açıklandığı gibi nose.main () 'e aktarabileceğimi bilmekte yardımcı oldum: stackoverflow.com/questions/7070501/…
David Hall

1
Herhangi birinin kaynağı görmek istemesi durumunda: nose.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista

12
Bu komutun kısa sürümü nosetests -s. Diğer standart seçenekler için -hyardıma veya temel kullanım yardım sayfasına bakın.
dbn

python3.5 -m "burun" --nokapür
Alex Punnen

1
Hatta testler geçerken benim baskı ifadeler basılı olmayan bu seçenekle benim için çalışmıyor
John Smith İsteğe

16

kullanım

--nologcapture 

benim için çalıştı


9

Bu yakın zamanda --nocapture yerine burnuna eklendi:

nosetestler -s


Bu soruya bir cevap sağlamaz. Bir yazardan eleştiri veya açıklama istemek için gönderilerinin altına bir yorum bırakın.
Bhargav Rao

7
@BhargavRao "bu nosetests yapmak -s" sorusuna cevap verir (gerçi en küçük dilbilgisi olmadan). Neden itiraz ettiğinden emin değilim.
dbliss

1
Belgeye göre bayrağın -stek harfli kısaltması olduğunu unutmayın . --nocapture
joelostblom

3

İle entegre etmek için http://travis-ci.org ben içine bu koyduk .travis.yml :

script:  "python setup.py nosetests -s"

Burada setup.py şunları içerir:

setup(
    ...
    tests_require=['nose>=1.0'],
    test_suite='nose.collector',
)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.