我正在使用pytest。
我想在测试失败时收集/保存一些数据以进行事后分析。我可以编写teardown_method
,但我无法在该上下文中获取测试状态。
是否可以对任何测试(或assertion
)失败采取行动?
conftest.py
文件中实现pytest_exception_interact
,根据文档:
当可能需要交互式处理的异常被引发时调用。
def pytest_exception_interact(node, call, report):
if report.failed:
# call.excinfo contains an ExceptionInfo instance
从您的问题中并不清楚您想从错误中收集什么信息,但是对于您的情况,可能拥有一个ExceptionInfo
实例就足够了。
node
... 如果你的测试函数是在一个类中定义的,我相信node.parent.obj
将会给你访问测试类实例的权限。 - Bruno Oliveira