我正在尝试使用pytest创建某种自动化套件。我试图编写的产品套件通过网络接口(interface)进行通信。我正在使用像这样的断言语句
assert A == B
我想解决的主要问题是:
B 需要不同的时间才能达到所需值(例如:有时 2 秒,有时 5 秒)
是否可以实现一个断言语句,该语句延迟执行给定条件一定次数,然后断言?
assert A == B, 5, 5.0, "Still it failed"
上面的语句意味着:“尝试 A == B
5 次,每次迭代之间有 5.0 秒的延迟,如果仍然失败,则发出给定的错误。”
最佳答案
为了获得更好、更具可读性的代码,您可以在内部函数上使用 retry
装饰器。执行 pip install retry
来安装 retry
模块
from retry import retry
def test_abc():
# <my test code>
@retry(AssertionError, tries=5, delay=5.0)
def _check_something():
assert A == B, "Still failing even after 5 tries"
# Validate
_check_something()
关于Python 断言与重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52227838/