我有一些测试可以上传不同的数据(音乐,视频)并从服务中获取元数据。
所以time.sleep()是一种非常糟糕的方式,因为不同的服务器和情况可能使系统过载。
所以我正在寻找特殊的装饰器或参数来设置。像这样的东西
@fails(10)
def test_get_info(self):
assert info == 1
10次尝试后,断言仍然失败 - 引发异常。
谢谢。
答案 0 :(得分:7)
您可以使用retry
decorator:
@retry(AssertionError, tries=10)
def test_get_info(self):
assert info == 1
注意:它不会考虑setup
,teardown
方法。
答案 1 :(得分:3)
为了完成,我还要添加以下插件: https://pypi.python.org/pypi/flaky
它开箱即用py.test和nose,你所要做的就是装饰你的测试方法或类。我认为这是一个非常简洁的API:
@flaky(max_runs=10)
def test_get_info(self):
assert info == 1