Pytest:如何对测试失败采取措施?

Bob*_*tle 5 pytest

我正在使用pytest。我想收集/保存一些数据,以便对测试失败进行事后分析。我可以编写一个teardown_method,但是在这种情况下我看不到获得测试状态的方法。

是否有可能对任何测试(或assertion)失败采取措施?

Bru*_*ira 7

pytest_exception_interact在一个conftest.py文件中实现一个,根据文档

在引发可能可以交互处理的异常时调用。

def pytest_exception_interact(node, call, report):
    if report.failed:
        # call.excinfo contains an ExceptionInfo instance
Run Code Online (Sandbox Code Playgroud)

从您的问题中尚不清楚您要从错误中收集什么,但是ExceptionInfo对于您的情况来说,访问实例可能就足够了。

  • 在调试器上浏览`node` ...如果您的测试函数在类中定义,我相信`node.parent.obj`将使您能够访问测试类实例。 (2认同)