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.


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)


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


9

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

nosetests -s


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',
)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.