我有一个随机失败的测试,我想让它在发送错误消息之前重试多次。
我将 python 与 Nose 一起使用。
我写了以下内容,但不幸的是,即使使用 try/ except 处理,当第一次尝试测试失败时,Nose 也会返回错误。
def test_something(self):
maxAttempts = 3
func = self.run_something
attempt = 1
while True:
if attempt == maxAttempts:
yield func
break
else:
try:
yield func
break
except:
attempt += 1
def run_something(self):
#Do stuff
Thanks
您可以在函数上使用属性片状鼻子插件 https://github.com/box/flaky这将自动重新运行测试并让您使用高级参数(例如,如果 3 中的 2 测试通过,则通过)
GitHub 片状项目 https://github.com/box/flaky
如何为 Python 安装 Flaky 插件:
pip install flaky
鼻子测试运行器配置示例:
nosetests.exe your_python_tests.py --with-flaky --force-flaky --max-runs=3
带有 Flaky 属性标记的函数的示例 Python 代码:
from flaky import flaky
@flaky
def test_something_that_usually_passes(self):
value_to_double = 21
result = get_result_from_flaky_doubler(value_to_double)
self.assertEqual(result, value_to_double * 2, 'Result doubled incorrectly.')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)