如何在收集阶段从pytest插件写入控制台?

2024-03-29 14:51:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个pytest插件,它需要警告用户在收集阶段遇到的异常情况,但是我没有找到任何方法从我的pytest_generate_tests函数内部一致地将输出发送到控制台。你知道吗

只有在添加-s选项时,printlogging模块的输出才会出现在控制台中。我找到的所有与日志记录相关的文档都是指在测试内部进行日志记录,而不是从插件内部进行日志记录。你知道吗


Tags: 模块方法函数用户插件警告pytestlogging
1条回答
网友
1楼 · 发布于 2024-03-29 14:51:52

最后,我使用了pytest警告基础结构,方法是使用pytest config对象的undocumented _warn()方法,该对象传递给各种钩子,或者可以从各种钩子访问。例如:

def pytest_generate_tests(metafunc):
    [...]
    if warning_condition:
        metafunc.config._warn("Warning condition encountered.")
    [...]

这样,如果报告了任何警告,您将在单行摘要中获得额外的pytest-warnings,并且您可以通过向pytest命令行添加'-rw'选项来查看警告的详细信息。你知道吗

相关问题 更多 >