1. 程式人生 > 其它 >**失敗重跑外掛pytest-rerunfailures的詳細使用**

**失敗重跑外掛pytest-rerunfailures的詳細使用**

失敗重跑外掛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標誌不相容