2011-05-12 78 views
121

當我鍵入nosetests正在捕獲我的打印語句的輸出。如何繞過這個?

$ 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) 

這感覺很不好,一定有更好的辦法。請賜教。

+0

任何想法如何以編程方式做到這一點? – 2014-08-06 12:14:52

回答

189

或者:

$ nosetests --nocapture mytest.py 

或者:

$ NOSE_NOCAPTURE=1 nosetests mytests.py 

(也可以在nose.cfg文件中指定,見nosetests --help

+3

感謝您的有用答案。我也發現它有助於知道我可以將這個參數傳遞給nose.main(),如後文所述:http://stackoverflow.com/questions/7070501/passing-options-to-nose-in-a-python-測試腳本 – 2012-02-01 15:22:55

+1

如果有人想看到源代碼:http://nose.readthedocs.org/en/latest/plugins/capture.html – 2012-07-27 18:30:04

+9

這個命令的簡短版本是'nosetests -s'。對於其他標準選項,請參閱'-h'幫助或[基本用法](https://nose.readthedocs.org/en/latest/usage.html#selecting-tests)幫助頁面。 – dbn 2013-04-16 00:17:10

14

使用

--nologcapture 

它爲我工作

3

爲了與http://travis-ci.org整合我已經把這個變成.travis.yml

script: "python setup.py nosetests -s" 

其中setup.py包含:

setup(
    ... 
    tests_require=['nose>=1.0'], 
    test_suite='nose.collector', 
) 
8

這是最近添加到鼻子而不是--nocapture做到這一點:

nosetests -s

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 – 2015-02-11 16:55:27

+7

@BhargavRao「做這個鼻子測試-s」回答這個問題(儘管沒有對語法的最小的關注)。我不確定你爲什麼反對。 – dbliss 2015-04-18 03:23:35