pytest用法之使用mark對測試方法分類

經過使用pytest.markhelper您能夠輕鬆地在測試函數上設置元數據。也就是說,經過@pytest.mark可以控制須要執行知足哪些特徵的測試,例如在執行test前增長修飾@pytest.mark.website。html

標記mark只能用於測試,對fixture沒有影響。有關fixture的做用,下篇中再介紹。web

一些內置的mark

pytest用法之使用mark對測試方法分類

註冊mark

您能夠在pytest.ini文件像這樣的文件:app

[pytest]
markers=slow:標識測試速度極慢的那些測試

或者在你的pyproject.toml項目像這樣表達:
pytest用法之使用mark對測試方法分類ide

在未知標記上引起錯誤

未註冊的標記(例如 @pytest.mark.name_of_the_mark的修飾器)將始終發出警告,以免因爲鍵入錯誤的名稱而默默地作一些使人驚訝的事情。
When the --strict-markers command-line flag is passed, any unknown marks applied with the @pytest.mark.name_of_the_mark decorator will trigger an error. You can enforce this validation in your project by adding --strict-markers to addopts:
pytest用法之使用mark對測試方法分類函數

舉例

pytest用法之使用mark對測試方法分類

而後,能夠將測試運行限制爲僅運行標有webtest的測試:學習

pytest -v -m webtest

測試結果以下:測試

pytest用法之使用mark對測試方法分類

或者反過來,還能夠運行除webtest以外的全部測試:this

pytest -v -m "not webtest"

小結1

注意到上面的「selected」了嗎?在Pytest中,藉助mark能夠篩選要測試的部分測試,從而加速測試工做。3d

標記整個類或模塊¶

你能夠用pytest.mark帶類的裝飾器將標記應用於其全部測試方法:
pytest用法之使用mark對測試方法分類code

有興趣的朋友能夠參考引文中內容做更系列全面學習。

引用

https://docs.pytest.org/en/stable/example/markers.html#mark-examples

相關文章
相關標籤/搜索