pytest特色
1、fixture的特點
- fixture是pytest特有的功能,其特點如下:
必須用pytest.fixture裝飾器裝飾;fixture有明確的名字,在其他函數(function,默認),模塊(module),類(class)或整個工程(session)調用它時會被激活;
- function:每個test都運行,默認是function的scope class:每個class的所有test只運行一次
- class:每個測試類之前執行一次
- module:每個module的所有test只運行一次
- session:每個session只運行一次
- 它自身也可以調用其他的fixture;
- 可以和測試函數寫在同一個文件里;
- fixture看做是資源,在你的測試用例執行之前需要去配置這些資源,執行完后需要去釋放資源;
- fixture還提供了參數化功能,根據配置和不同組件來選擇不同的參數;
2、conftest.py:共享fixture功能
如果在實現測試期間,要使用多個測試文件中的fixture函數,則可以將其移動到conftest.py文件中。 並且,不需要導入要在測試中使用的fixture,它會自動被pytest發現。 fixture功能的發現從測試類開始,然后是測試模塊,然后是conftest.py文件,最后是內置和第三方插件。
pytest插件
pytest真的很強大,下面列出其幾點強大之處,方便大家在使用到pytest的時候做參考。
1、pytest-xdist
功能:
開啟多個worker進程,同時執行多個測試用例,達到並發運行的效果,大大提升構建效率。
官網介紹:
https://pypi.org/project/pytest-xdist/
2、pytest-allure-adaptor
功能:
生成漂亮的allure報告,持續構建推薦使用
官網介紹:
https://pypi.org/project/pytest-allure-adaptor/
3、pytest-html
功能:
生成html格式報告,本地調試推薦使用
官網介紹:
https://pypi.org/project/pytest-html/
4、pytest-rerunfailures
功能:
自動重跑失敗用例
官網介紹:
https://pypi.org/project/pytest-rerunfailures/3.1/
5、pytest-cache
功能:
重跑上次失敗的用例,持續集成中很實用,提高分析效率,強烈推薦。
官網介紹:
https://pypi.org/project/pytest-cache/
6、pytest-ordering
功能:
可指定一個測試套中的所有用例執行順序。
官網介紹:
https://pypi.org/project/pytest-ordering/
7、pytest-sugar
功能:
改變了pytest的默認外觀,增加了一個進度條,並立即顯示失敗的測試。
官網介紹:
https://pypi.org/project/pytest-sugar/