目錄
1--?安裝rerunfailures插件
2--?rerunfailures的使用
3--?重試案例
-
安裝rerunfailures插件
- ?pip install ?pytest-rerunfailures
- 點擊左下角的控制臺面板
- 輸入?pip install ?pytest-rerunfailures
- 出現上圖的情況就算安裝完成了
-
rerunfailures的使用
- 可以添加一下參數使用,在執行參數用例的時候?
- --reruns 重試次數
- --reruns-delay 數字(秒)
- 每延遲的多少秒執行一次
- 可以添加一下參數使用,在執行參數用例的時候?
-
重試案例
-
import pytestclass TestRerunFailures:def test_demo_001(self):print("---------test_demo_001--------")print("success")assert Truedef test_demo_002(self):print("---------test_demo_002--------")print("success")assert Truedef test_demo_003(self):print("---------test_demo_001--------")print("fail")assert Falsedef test_demo_004(self):print("---------test_demo_004--------")print("fail")assert Falsedef test_demo_005(self):print("---------test_demo_005--------")print("success")assert True
- 運行結果
-
PASSED ? ? ? ? ? [ 20%]---------test_demo_001--------
success
PASSED ? ? ? ? ? [ 40%]---------test_demo_002--------
success
FAILED ? ? ? ? ? [ 60%]---------test_demo_001--------
failtest_rerunfailures.py:15 (TestRerunFailures.test_demo_003)
self = <test_rerunfailures.TestRerunFailures object at 0x00000266195D6F00>? ? def test_demo_003(self):
? ? ? ? print("---------test_demo_001--------")
? ? ? ? print("fail")
> ? ? ? assert False
E ? ? ? assert Falsetest_rerunfailures.py:19: AssertionError
FAILED ? ? ? ? ? [ 80%]---------test_demo_004--------
failtest_rerunfailures.py:20 (TestRerunFailures.test_demo_004)
self = <test_rerunfailures.TestRerunFailures object at 0x000002661961A4E0>? ? def test_demo_004(self):
? ? ? ? print("---------test_demo_004--------")
? ? ? ? print("fail")
> ? ? ? assert False
E ? ? ? assert Falsetest_rerunfailures.py:24: AssertionError
PASSED ? ? ? ? ? [100%]---------test_demo_005--------
success
- 我們想讓這些在失敗之后從事幾次之后,在做判斷
- 我們可以添加
- --reruns 重試次數
- pytest -s .\test_rerunfailures.py --reruns 5
- ?運行結果如下?
- 可以看到有兩個失敗的
- 其他三個都是成功
- 一共重試了10次
- 相當于每個失敗的用例執行了5次
- 我們可以在后面在添加延遲參數,這樣這些用例就會在每個一秒鐘之后在次執行
- pytest -s .\test_rerunfailures.py --reruns 5 --reruns-delay 1
- 也是也可看到
- 這些只是對失敗的用例進行重試,成功的用例不會再次執行
- pytest -s .\test_rerunfailures.py --reruns 5 --reruns-delay 1
-