我有一个带有坚韧库重试的功能
@retry(stop=stop_after_attempt(3))
def func():
pass
如何单元测试重试会执行3次? 谢谢
首先,你的函数永远不会失败,因此永远不会触发重试(第一次尝试就成功)。我们这样修改一下:
@retry(stop=stop_after_attempt(3))
def func():
raise RuntimeError('oops')
现在https://tenacity.readthedocs.io/en/latest/#statistics指出了方向:
import pytest
from tenacity import RetryError
def test_func_retry():
with pytest.raises(RetryError):
func()
assert func.retry.statistics['attempt_number'] == 3