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

时间:2016-01-09 18:00:40

标签: python pytest

我正在编写一个pytest插件,需要警告用户在收集阶段遇到的异常,但我没有找到任何方法从我的print函数内部始终将输出发送到控制台。 / p>

添加logging选项时,-s$query = $fpdo->from('article') ->where('published_at > ?', $date) // HERE!! ->orderBy('published_at DESC') ->limit(5); 模块的输出仅显示在控制台中。我发现的所有与日志相关的文档都是指在测试中记录,而不是从插件中记录。

1 个答案:

答案 0 :(得分:2)

最后,我使用pytest-warning基础结构,使用传递给或从各种钩子可访问的pytest _warn()对象的未记录的config方法。例如:

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

通过这种方式,如果报告了任何内容,您可以在单行摘要中获得额外的pytest-warnings,并且可以通过向pytest命令行添加“-rw”选项来查看警告详细信息。