我使用pytest来自动化项目测试。我想在测试用例失败时采取一些独特的操作,例如“save_snapshot()”。
我们在pytest中有这样的东西吗?
我试图使用teardown_method()来实现这一点但是当测试用例失败时,这个方法没有被执行。
答案 0 :(得分:4)
I found a solution for this issue by using python decorator for each test in class:
def is_failed_decorator(func):
def wrapper(*args, **kwargs):
try:
func(*args, **kwargs)
except AssertionError:
cls_obj = args[0]
cur_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
func_name = func.__name__
# Save_snapshot().
raise
return wrapper
# Tests class
@is_failed_decorator
def test_fail(self):
assert False
worked for me :D