如果断言失败,有没有办法触发函数?
我正在考虑目前的单元测试,但如果需要可以改变测试框架。
我想在断言失败时截取屏幕截图
答案 0 :(得分:4)
此:
try:
assert something == something_else
except AssertionError:
take_screenshot()
是你可以做到的一种方式。
在某些情况下,您可能想要使用装饰器:
>>> def assertd(function):
def _f(*args):
try:
return function(*args)
except AssertionError:
takescreenshot()
return _f
>>> @assertd
def f(x, y):
assert x > 0
return x + y
>>> f(1, 2)
3
>>> f(5, 6)
11
>>> f(-7, 8)
<Screenshot taken>