如何更改pytest中的错误和故障检测?

How to change error and failure detection in pytest?

在 pytest 中,我想将所有未捕获的 AssertionError 异常报告为 Failure,将所有其他未捕获的异常报告为 Errors(而不是在设置中报告所有未捕获异常的默认行为方法为 Errors,而测试用例和 UUT 中所有未捕获的异常为 Failure)。我认为这可以用 pytest 钩子来完成。但是,"passed"、"skipped" 和 "failed" 似乎是 TestReport 对象中唯一有效的结果值。

所以,

  1. 是否可以将 "error" 添加为有效结果并让 pytest 的其余部分进行适当的报告,即显示 E/ERROR 而不是F/FAILURE 在控制台输出?
  2. 如果是这样,那么理想的源代码部分是什么?
  3. 如果我们无法将 "error" 添加为有效结果,那么注入此行为的最佳方式是什么?

[自己回答]

pytest-finer-verdicts plugin 实现了这种行为:)