目錄:
- 安裝及入門
- 使用和調(diào)用方法
- 原有TestSuite使用方法
- 斷言的編寫和報(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
- 安裝和使用插件
- 插件編寫
- 編寫鉤子(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編寫的測(cè)試。
用法
后安裝pytest類型:
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)格
- 在模塊/類/方法級(jí)別進(jìn)行設(shè)置和拆卸
- SkipTest異常和標(biāo)記
- 設(shè)置/拆卸裝飾器
-
yield
基于測(cè)試及其設(shè)置(從pytest 3.0開始被認(rèn)為已棄用) -
__test__
模塊/類/函數(shù)的屬性 - nose工具的一般用法
不支持的習(xí)語/已知問題
unittest-style 僅在類上被識(shí)別,而在普通類上不被識(shí)別。 在普通類上也支持這些方法,但pytest故意不支持。由于nose和pytest都已經(jīng)支持 它,因此像nose一樣復(fù)制unittest-API似乎沒什么用。但是,如果你認(rèn)為pytest應(yīng)該支持普通類的單元測(cè)試拼寫,請(qǐng)發(fā)帖到這個(gè)問題。
setUp, tearDown, setUpClass, tearDownClass``unittest.TestCase``nose``setup_class,teardown_class, setup_method, teardown_method
-
通過擴(kuò)展sys.path / import語義,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)行開發(fā)。
python setup.py install``python setup.pydevelop
沒有正確收集和執(zhí)行nose式doctests,doctest fixtures也不起作用。
沒有nose配置被識(shí)別。
yield
基于方法的方法不能setup
正確支持,因?yàn)樵?code>setup方法總是在同一個(gè)類實(shí)例中調(diào)用。目前沒有計(jì)劃修復(fù)此問題,因?yàn)?code>yield-test在pytest 3.0中已棄用,pytest.mark.parametrize
建議使用。