我有一些测试,上传不同的数据(音乐,视频),并从服务中获取元数据。Py.test运行,直到传递装饰器
所以time.sleep()是一个非常糟糕的方式,因为不同的服务器和情况可能会使系统过载。
所以我正在寻找特殊的装饰或参数来设置。像这样的东西
@fails(10)
def test_get_info(self):
assert info == 1
10次尝试断言仍然失败 - 引发异常。
谢谢。
我有一些测试,上传不同的数据(音乐,视频),并从服务中获取元数据。Py.test运行,直到传递装饰器
所以time.sleep()是一个非常糟糕的方式,因为不同的服务器和情况可能会使系统过载。
所以我正在寻找特殊的装饰或参数来设置。像这样的东西
@fails(10)
def test_get_info(self):
assert info == 1
10次尝试断言仍然失败 - 引发异常。
谢谢。
你可以使用retry
decorator:
@retry(AssertionError, tries=10)
def test_get_info(self):
assert info == 1
注:不考虑setup
,teardown
方法。
完成的缘故,我还要补充以下插件: https://pypi.python.org/pypi/flaky
它的工作原理与出py.test和nose的方块,和所有你需要做的就是来装点你的测试方法或类。我认为这是一个漂亮整洁的API:
@flaky(max_runs=10)
def test_get_info(self):
assert info == 1
感谢您的链接,它的伟大工程,在大多数情况下,但在pytest,装饰方法会莫名其妙地“跳”到开始,在此之前其他被测试测试,这打破了顺序。 – Mazyod