如何使用 pytest 对测试失败采取措施?

How to take action on a test failure with pytest?

我正在使用 pytest。

我想 gather/save 一些数据用于测试失败的事后分析。我可以写 teardown_method,但我看不到在该上下文中获取测试状态的方法。

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

conftest.py文件中实现pytest_exception_interact,根据documentation:

called when an exception was raised which can potentially be interactively handled.

def pytest_exception_interact(node, call, report):
    if report.failed:
        # call.excinfo contains an ExceptionInfo instance

从你的问题中不清楚你想从错误中收集什么,但可能访问 ExceptionInfo 实例应该足以满足你的情况。

您也可以在成品率固定装置的后半部分进行:

https://docs.pytest.org/en/latest/example/simple.html#making-test-result-information-available-in-fixtures