標籤:
最近再瀏覽Python自動化測試架構,之前接觸過unittest,看了篇文章,發現nose貌似更牛逼一些,於是安裝試了試,分享一下心得。 nose 項目是於 2005 年發布的,也就是 py.test 改名後的一年。它是由 Jason Pellerin 編寫的,支援與 py.test 相同的測試習慣做法,但是這個包更容易安裝和維護。儘管 py.test 在某些方面有所進步,目前也很容易安裝,但是 nose 仍然保持了易用性方面的聲譽。 首先安裝nose,當然前提是已經安裝部署完成python,從網上擷取程式包,https://pypi.python.org/pypi/nose/選擇相應的版本下載,tar -zxvf nosexxxx,python setup.py insatll 當然也可以用easy_install測試nose是否安裝成功,輸入nosetests,有提示之類就證明哦了。 編寫一個簡單的測試案例 在命令列下執行nosetests 即可。 注意:測試代碼儲存的檔案必須以Test或test開頭.然後在該目錄下執行nosetests setup和teardownsetup:在測試案例開始時被執行teardown:在測試案例結束後被執行 nose在檔案中如果找到函數setup, setup_module, setUp 或者setUpModule等,那麼會在該模組的所有測試執行之前執行該函數。如果找到函數 teardown,tearDown, teardown_module或者 tearDownModule 等,那麼會在該模組所有的測試執行完之後執行該函數。 對於上面的代碼,nose實際的執行過程是這樣的: setUp()->Testfunc1()->Testfunc2()->tearDown() nose常用參數nosetests –v :debug模式,看到具體執行情況,推薦大家執行時用這個選項nose會捕獲標準輸出,調試的print代碼預設不會列印。nosetest –s 可開啟output輸出,否則全部通過時不列印stdout。預設nosetests會執行所有的case,若想單獨只執行一個case,執行nosetest --tests 後跟要測試的檔案(nosetests後面直接跟檔案名稱,其實也可以直接運行該case)。nosetests --collect-only -v :不運行程式,只是搜集並輸出各個case的名稱nosetests -x :一旦case失敗立即停止,不執行後續case-w ,指定一個目錄運行測試。目錄可以是相對路徑或絕對路徑 上述檔案執行 nosetests -s 即可看到調用順序。
nose測試單個檔案或用例nosetests命令後加檔案路徑來運行單個.py測試檔案或指定運行某個case,檔案名稱支援正則匹配nosetest a.py 運行test_a.py中所有用例nosetest test_a.py:testfunc 運行test_a.py中的testfunc用例 程式碼涵蓋範圍統計,要用到coverage,詳細的打算再寫一篇blog。nosetests--with-coverage執行即可 單側的目錄建議: 這個我還沒太高明吧,感覺大致意思就是要對應放置?maybe。 nose的外掛程式: http://nose-plugins.jottit.com/
python測試架構--nose