如何更改pytest中的错误和故障检测?
How to change error and failure detection in pytest?
在 pytest 中,我想将所有未捕获的 AssertionError
异常报告为 Failure
,将所有其他未捕获的异常报告为 Errors
(而不是在设置中报告所有未捕获异常的默认行为方法为 Errors
,而测试用例和 UUT 中所有未捕获的异常为 Failure
)。我认为这可以用 pytest 钩子来完成。但是,"passed"、"skipped" 和 "failed" 似乎是 TestReport
对象中唯一有效的结果值。
所以,
- 是否可以将 "error" 添加为有效结果并让 pytest 的其余部分进行适当的报告,即显示 E/ERROR 而不是F/FAILURE 在控制台输出?
- 如果是这样,那么理想的源代码部分是什么?
- 如果我们无法将 "error" 添加为有效结果,那么注入此行为的最佳方式是什么?
[自己回答]
pytest-finer-verdicts plugin 实现了这种行为:)
在 pytest 中,我想将所有未捕获的 AssertionError
异常报告为 Failure
,将所有其他未捕获的异常报告为 Errors
(而不是在设置中报告所有未捕获异常的默认行为方法为 Errors
,而测试用例和 UUT 中所有未捕获的异常为 Failure
)。我认为这可以用 pytest 钩子来完成。但是,"passed"、"skipped" 和 "failed" 似乎是 TestReport
对象中唯一有效的结果值。
所以,
- 是否可以将 "error" 添加为有效结果并让 pytest 的其余部分进行适当的报告,即显示 E/ERROR 而不是F/FAILURE 在控制台输出?
- 如果是这样,那么理想的源代码部分是什么?
- 如果我们无法将 "error" 添加为有效结果,那么注入此行为的最佳方式是什么?
[自己回答]
pytest-finer-verdicts plugin 实现了这种行为:)