如何检测pytest测试用例何时出现AssertionError?

时间:2016-08-17 11:35:23

标签: python python-2.7 testing pytest

我使用pytest来自动化项目测试。我想在测试用例失败时采取一些独特的操作,例如“save_snapshot()”。

我们在pytest中有这样的东西吗?

我试图使用teardown_method()来实现这一点但是当测试用例失败时,这个方法没有被执行。

  • 请不要使用固定装置。

1 个答案:

答案 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