pytest 其他測(cè)試系統(tǒng)-運(yùn)行為nose編寫的測(cè)試

2022-03-22 09:46 更新

用法

安裝pytest之后:

python setup.py develop  # make sure tests can import our package
pytest  # instead of 'nosetests'

你應(yīng)該能夠運(yùn)行你的?nose?風(fēng)格測(cè)試并利用 pytest 的功能。

支持的nose語句

  • 在模塊/類/方法級(jí)別設(shè)置和拆卸
  • SkipTest異常和標(biāo)記
  • 安裝/拆卸修飾符
  • 模塊/類/函數(shù)的?__test__?屬性
  • nose程序的一般用法

不支持的語句/已知問題

  • unittest-style ?setUp, tearDown, setUpClass, tearDownClass?只在unittest上被識(shí)別。?Nose?在普通類上也支持這些方法,但pytest故意不支持。因?yàn)?nose?和pytest已經(jīng)都支持?setup_class, teardown_class, setup_method, teardown_method?,所以像nose一樣復(fù)制unittest-API似乎沒有什么用。
  • 通過擴(kuò)展 ?sys.path/import? 語義,?nose ?導(dǎo)入具有相同導(dǎo)入路徑(例如,?tests.test_mode?)但文件系統(tǒng)路徑不同(例如,?tests/test_mode.py? 和 ?other/tests/test_mode.py?)的測(cè)試模塊。如果您將 ?conftest.py? 文件放在項(xiàng)目的根目錄中(由 pytest 確定),pytest 將通過將其添加到您的 ?sys.path? 而不是針對(duì)您安裝的代碼運(yùn)行該目錄下的代碼來運(yùn)行測(cè)試?nose style?。如果你運(yùn)行 ?python setup.py install? 來設(shè)置你的項(xiàng)目,你可能會(huì)發(fā)現(xiàn)自己想要這樣做,而不是 ?python setup.py develop? 或任何包管理器等價(jià)物。 在這種模式下,建議在像?tox這樣的虛擬環(huán)境中使用 ?develop ?進(jìn)行安裝。
  • ?nose-style doctests?沒有被正確地收集和執(zhí)行,?doctest fixture?也沒有工作。
  • 沒有識(shí)別出?nose?配置
  • ?yield-based?方法在pytest 4.1.0是不支持的。它們根本與pytest不兼容,因?yàn)樗鼈儾荒苷_地支持?fixture?,收集和測(cè)試執(zhí)行是分開的。

從nose遷移到pytest

?nose2pytest? 是一個(gè) Python 腳本和 pytest 插件,可幫助將基于 ?Nose的測(cè)試轉(zhuǎn)換為基于 pytest 的測(cè)試。 具體來說,該腳本將?nose.tools.assert_*? 函數(shù)調(diào)用轉(zhuǎn)換為原始斷言語句,同時(shí)盡可能保留原始參數(shù)的格式。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)