nosetests กำลังจับเอาท์พุทของคำสั่งการพิมพ์ของฉัน วิธีหลีกเลี่ยงสิ่งนี้


142

เมื่อฉันพิมพ์

$ nosetests -v mytest.py

ผลงานพิมพ์ทั้งหมดของฉันจะถูกบันทึกเมื่อการทดสอบทั้งหมดผ่าน ฉันต้องการเห็นผลงานพิมพ์แม้ทุกอย่างจะผ่านไป

ดังนั้นสิ่งที่ฉันทำคือการบังคับให้เกิดข้อผิดพลาดในการยืนยันเพื่อดูผลลัพธ์เช่นนี้

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)

มันรู้สึกแฮ็คมากต้องมีวิธีที่ดีกว่า โปรดบอกฉันที


ความคิดใด ๆ ที่จะทำมันโดยทางโปรแกรม?
Yauhen Yakimovich

คำตอบ:


219

ทั้ง:

$ nosetests --nocapture mytest.py

หรือ:

$ NOSE_NOCAPTURE=1 nosetests mytests.py

(สามารถระบุได้ในnose.cfgไฟล์ดูnosetests --help)


3
ขอบคุณสำหรับคำตอบที่มีประโยชน์ ฉันก็พบว่ามีประโยชน์เช่นกันที่จะรู้ว่าฉันสามารถส่งผ่านข้อโต้แย้งนี้ไปยัง nose.main () ตามที่อธิบายไว้ในโพสต์: stackoverflow.com/questions/7070501/…
David Hall

1
ในกรณีที่ทุกคนต้องการเห็นแหล่งที่มา: nose.readthedocs.org/en/latest/plugins/capture.html
Ceasar Bautista

12
nosetests -sรุ่นสั้นของคำสั่งนี้คือ สำหรับตัวเลือกมาตรฐานอื่นดูได้ทั้ง-hความช่วยเหลือหรือการใช้งานพื้นฐานหน้าความช่วยเหลือ
dbn

python3.5 -m "nose"
อเล็กซ์ Punnen

1
ใช้งานไม่ได้สำหรับฉันแม้จะมีตัวเลือกนี้ข้อความสั่งพิมพ์ของฉันจะไม่ถูกพิมพ์เมื่อการทดสอบผ่าน
จอห์นสมิ ธ เป็นตัวเลือก


9

สิ่งนี้ถูกเพิ่มเข้ากับจมูกแทน - ไม่มีการทำสิ่งนี้:

nosetests -s


สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา
Bhargav Rao

7
@BhargavRao "ทำ nosetests -s นี้" ตอบคำถาม (แม้ว่าจะไม่มีการคำนึงถึงหลักไวยากรณ์น้อยมาก) ฉันไม่แน่ใจว่าทำไมคุณถึงคัดค้าน
dbliss

1
ทราบว่า-sเป็นคนเดียวย่อตัวอักษรของ--nocaptureธงเป็นต่อเอกสาร
joelostblom

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.