經過使用pytest.markhelper您能夠輕鬆地在測試函數上設置元數據。也就是說,經過@pytest.mark可以控制須要執行知足哪些特徵的測試,例如在執行test前增長修飾@pytest.mark.website。html
標記mark只能用於測試,對fixture沒有影響。有關fixture的做用,下篇中再介紹。web
您能夠在pytest.ini文件像這樣的文件:app
[pytest] markers=slow:標識測試速度極慢的那些測試
或者在你的pyproject.toml項目像這樣表達:
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:
函數
而後,能夠將測試運行限制爲僅運行標有webtest的測試:學習
pytest -v -m webtest
測試結果以下:測試
或者反過來,還能夠運行除webtest以外的全部測試:this
pytest -v -m "not webtest"
注意到上面的「selected」了嗎?在Pytest中,藉助mark能夠篩選要測試的部分測試,從而加速測試工做。3d
你能夠用pytest.mark帶類的裝飾器將標記應用於其全部測試方法:
code
有興趣的朋友能夠參考引文中內容做更系列全面學習。
https://docs.pytest.org/en/stable/example/markers.html#mark-examples