**失敗重跑外掛pytest-rerunfailures的詳細使用**
阿新 • • 發佈:2021-06-19
失敗重跑外掛pytest-rerunfailures的詳細使用
環境前提:必須以下條件才能使用該外掛
1.python3.5~3.8
2.pytest5.0或更高版本
安裝外掛:
pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
提前瞭解重點
命令列引數:--reruns n(重新執行次數),--reruns-delay m(等待執行秒數)
裝飾器引數:reruns=n(重新執行次數),reruns_delay=m(等待執行秒數)
重新執行所有失敗的用例
要重新執行所有測試失敗,使用 --reruns 命令列選項,並指定要執行測試的最大次數:
pytest --reruns 5 -s
知識點
執行失敗的fixture或setup_class也將重新執行
新增重新執行的延時
要在兩次重試之間增加延遲時間,使用 --reruns-delay 命令列選項,指定下次測試重新開始之前等待的秒數
pytest --reruns 5 --reruns-delay 10 -s
重新執行指定的測試用例
要將單個測試用例新增flaky裝飾器 @pytest.mark.flaky(reruns=5) ,並在測試失敗時自動重新執行,需要指定最大重新執行的次數
import pytest @pytest.mark.flaky(reruns=5, reruns_delay=2) def test_example(): import random assert random.choice([True, False, False]) if __name__ == '__main__': pytest.main()
注意事項
如果指定了用例的重新執行次數,則在命令列新增--reruns對這些用例是不會生效的
相容性問題
- 不可以和fixture裝飾器一起使用: @pytest.fixture()
- 該外掛與pytest-xdist的 --looponfail 標誌不相容
- 該外掛與核心--pdb標誌不相容