目錄:
- 安裝及入門(mén)
- 使用和調(diào)用方法
- 原有TestSuite使用方法
- 斷言的編寫(xiě)和報(bào)告
- Pytest fixtures:清晰 模塊化 易擴(kuò)展
- 使用Marks標(biāo)記測(cè)試用例
- Monkeypatching/對(duì)模塊和環(huán)境進(jìn)行Mock
- 使用tmp目錄和文件
- 捕獲stdout及stderr輸出
- 捕獲警告信息
- 模塊及測(cè)試文件中集成doctest測(cè)試
- skip及xfail: 處理不能成功的測(cè)試用例
- Fixture方法及測(cè)試用例的參數(shù)化
- 緩存: 使用跨執(zhí)行狀態(tài)
- unittest.TestCase支持
- 運(yùn)行Nose用例
- 經(jīng)典xUnit風(fēng)格的setup/teardown
- 安裝和使用插件
- 插件編寫(xiě)
- 編寫(xiě)鉤子(hook)方法
- 運(yùn)行日志
- API參考
- 優(yōu)質(zhì)集成實(shí)踐
- 片狀測(cè)試
- Pytest導(dǎo)入機(jī)制及sys.path/PYTHONPATH
- 配置選項(xiàng)
- 示例及自定義技巧
- Bash自動(dòng)補(bǔ)全設(shè)置
運(yùn)行Nose用例
pytest
有基本支持運(yùn)行為nose編寫(xiě)的測(cè)試。
用法
后安裝pytest類(lèi)型:
python setup.py develop # make sure tests can import our package
pytest # instead of 'nosetests'
你應(yīng)該能夠運(yùn)行你的nose樣式測(cè)試并利用pytest的功能。
支持的nose風(fēng)格
- 在模塊/類(lèi)/方法級(jí)別進(jìn)行設(shè)置和拆卸
- SkipTest異常和標(biāo)記
- 設(shè)置/拆卸裝飾器
-
yield
基于測(cè)試及其設(shè)置(從pytest 3.0開(kāi)始被認(rèn)為已棄用) -
__test__
模塊/類(lèi)/函數(shù)的屬性 - nose工具的一般用法
不支持的習(xí)語(yǔ)/已知問(wèn)題
unittest-style 僅在類(lèi)上被識(shí)別何缓,而在普通類(lèi)上不被識(shí)別回梧。 在普通類(lèi)上也支持這些方法掸宛,但pytest故意不支持泪幌。由于nose和pytest都已經(jīng)支持 它惊豺,因此像nose一樣復(fù)制unittest-API似乎沒(méi)什么用呀非。但是坚俗,如果你認(rèn)為pytest應(yīng)該支持普通類(lèi)的單元測(cè)試拼寫(xiě),請(qǐng)發(fā)帖到這個(gè)問(wèn)題岸裙。
setUp, tearDown, setUpClass, tearDownClass``unittest.TestCase``nose``setup_class,teardown_class, setup_method, teardown_method
-
通過(guò)擴(kuò)展sys.path / import語(yǔ)義猖败,nose導(dǎo)入具有相同導(dǎo)入路徑(例如
tests.test_mod
)但不同文件系統(tǒng)路徑(例如tests/test_mode.py
和other/tests/test_mode.py
)的測(cè)試模塊 。pytest不這樣做降允,但在#268中有討論增加一些支持恩闻。請(qǐng)注意, nose2選擇避免此sys.path / import hackery剧董。如果將conftest.py文件放在項(xiàng)目的根目錄中(由pytest確定)幢尚,pytest將對(duì)該目錄下面的代碼運(yùn)行測(cè)試“nose style”,方法是將其添加到您
sys.path
的安裝代碼而不是運(yùn)行翅楼。如果您運(yùn)行 設(shè)置項(xiàng)目而不是或任何包管理器等效項(xiàng)尉剩,您可能會(huì)發(fā)現(xiàn)自己想要這樣做。建議在此模式下使用像tox這樣的虛擬環(huán)境進(jìn)行開(kāi)發(fā)毅臊。
python setup.py install``python setup.pydevelop
沒(méi)有正確收集和執(zhí)行nose式doctests理茎,doctest fixtures也不起作用。
沒(méi)有nose配置被識(shí)別。
yield
基于方法的方法不能setup
正確支持功蜓,因?yàn)樵?code>setup方法總是在同一個(gè)類(lèi)實(shí)例中調(diào)用园爷。目前沒(méi)有計(jì)劃修復(fù)此問(wèn)題,因?yàn)?code>yield-test在pytest 3.0中已棄用式撼,pytest.mark.parametrize
建議使用童社。