天天看點

學習python單元測試架構nose之---01nose架構初探

nose 項目是于 2005 年釋出的,也就是 py.test 改名後的一年。它是由 Jason Pellerin 編寫的,支援與 py.test 相同的測試習慣做法,但是這個包更容易安裝和維護。盡管 py.test 在某些方面有所進步,目前也很容易安裝,但是 nose 仍然保持了易用性方面的聲譽。支援插件擴充,相容unittest。

1、安裝

pip install nose

2、使用

a、編寫簡單測試用例

=======================
#### file: test.py ####
=======================
def Testfunc():
    assert True
           

把上面的檔案test.py儲存到d:\目錄下,然後在該目錄下在指令行裡執行nosetests就可以運作測試了。

或者在指令行裡指定檔案執行nosetests -v d:\test.py也可以允許測試。

nose會自動查找源檔案、目錄或者包中的測試用例,符合正規表達式(?:^|[\b_\.%s-])[Tt]est,以及TestCase的子類都會被識别并執行。

b、setUp和tearDown

nose在檔案中如果找到函數setup, setup_module, setUp 或者setUpModule等,那麼會在該子產品的所有測試執行之前執行該函數。如果找到函數 teardown,tearDown, teardown_module或者 tearDownModule 等,那麼會在該子產品所有的測試執行完之後執行該函數。

執行順序是setUpModule >setUp >func >tearDown >tearDownModule 

如果需要包的setup和teardown,需要寫入__init__.py檔案裡

c、可以把nose直接導入檔案執行,不用在指令行下輸入指令

import nose
def TestFunc():
    assert True
if __name__ =='__main__':
    nose.main()
           

d、nosetest常用的指令行參數

  這裡隻重點介紹幾個常用的,其它的參數可以通過nosetests -h進行檢視。

  a) -w ,指定一個目錄運作測試。目錄可以是相對路徑或絕對路徑。

  例如: nosetest -w c:\pythonTests\Test1,隻運作目錄c:\pythonTests\Test1下的測試。可以指定多個目錄,例如: nosetest -w c:\pythonTests\Test1 -w c:\pythonTests\Test2。

  b)-s,不捕獲輸出,會讓你的程式裡面的一些指令行上的輸出顯示出來。例如print所輸出的内容。

  c)-v,檢視nose的運作資訊和調試資訊。例如會給出目前正在運作哪個測試。

       d)-p,列印安裝的插件