nosetests menangkap keluaran dari pernyataan cetak saya. Bagaimana cara menghindari ini?

142

Saat saya mengetik

$ nosetests -v mytest.py

semua hasil cetak saya ditangkap ketika semua tes lulus. Saya ingin melihat hasil cetak bahkan semuanya lewat.

Jadi yang saya lakukan adalah memaksa kesalahan pernyataan untuk melihat output, seperti ini.

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)

Rasanya sangat retas, pasti ada cara yang lebih baik. Tolong beri saya pencerahan.

Frankie Ribery
sumber
Adakah yang tahu bagaimana melakukannya secara terprogram?
Yauhen Yakimovich

Jawaban:

219

Antara:

$ nosetests --nocapture mytest.py

Atau:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(itu juga dapat ditentukan dalam nose.cfgfile, lihat nosetests --help)

kode kode
sumber
3
Terima kasih atas jawaban yang bermanfaat. Saya juga merasa terbantu mengetahui bahwa saya dapat meneruskan argumen ini ke nose.main () seperti yang dijelaskan dalam posting: stackoverflow.com/questions/7070501/…
David Hall
1
Jika ada yang ingin melihat sumbernya: nose.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista
12
Versi pendek dari perintah ini adalah nosetests -s. Untuk opsi standar lainnya, lihat -hbantuan atau halaman bantuan penggunaan dasar .
dbn
python3.5 -m "nose" --nocapture
Alex Punnen
1
tidak bekerja untuk saya, bahkan dengan opsi ini pernyataan cetak saya tidak dicetak ketika tes lulus
John Smith Opsional
16

Menggunakan

--nologcapture 

itu berhasil untuk saya

Damian
sumber
9

Ini baru-baru ini ditambahkan ke hidung bukannya --nocapture melakukan ini:

nosetests -s

moeabdol
sumber
Ini tidak memberikan jawaban untuk pertanyaan itu. Untuk mengkritik atau meminta klarifikasi dari penulis, tinggalkan komentar di bawah posting mereka.
Bhargav Rao
7
@BhargavRao "do this nosetests -s" menjawab pertanyaan (meskipun, tanpa memperhatikan tata bahasa yang terkecil). Saya tidak yakin mengapa Anda keberatan.
dbliss
1
Perhatikan bahwa -sadalah singkatan huruf tunggal dari --nocapturebendera sesuai dokumentasi .
joelostblom
3

Untuk berintegrasi dengan http://travis-ci.org saya telah memasukkan ini ke .travis.yml :

script:  "python setup.py nosetests -s"

di mana setup.py berisi:

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