Python 断言与重复

标签 python python-2.7 assert

我正在尝试使用创建某种自动化套件。我试图编写的产品套件通过网络接口(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/

相关文章:

python - Ubuntu服务器上的scrapy

c - 当 assert() 失败时,程序退出代码是什么?

python - 如何格式化符合 PEP8 的 python 断言语句?

python - 根据日期将数据框分成两部分

python - 使用 pyinstaller 在 Python 中嵌入一个 .wav 文件

python - 作为另一个用户使用 python 子进程时环境错误

python - 从已编译的 CPython 中删除文档字符串但不删除断言

python - Perl中相当于$|=1的python是什么

简单for循环打印中的python27 errno 0和2

php - 如何对 Excel 文件中的内容进行断言?