3

我有一些测试上传不同的数据(音乐、视频)并从服务中获取元数据。

所以 time.sleep() 是一个非常糟糕的方法,因为不同的服务器和情况可能会使系统过载。

所以我正在寻找特殊的装饰器或参数来设置。像这样的东西

@fails(10)
def test_get_info(self):
    assert info == 1

10 次尝试后,断言仍然失败 - 引发异常。

谢谢你。

4

2 回答 2

7

你可以使用retry装饰器

@retry(AssertionError, tries=10)
def test_get_info(self):
    assert info == 1

注意:它不考虑setup,teardown方法。

于 2012-08-22T15:53:22.063 回答
3

为了完成,我还要添加以下插件: https ://pypi.python.org/pypi/flaky

它与 py.test 和nose 一起开箱即用,您所要做的就是装饰您的测试方法或类。我认为这是一个非常简洁的 API:

@flaky(max_runs=10)
def test_get_info(self):
    assert info == 1
于 2016-12-15T13:19:44.210 回答