Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在收集阶段,如何从pytest插件写入控制台?_Python_Pytest - Fatal编程技术网

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

Python 在收集阶段,如何从pytest插件写入控制台?,python,pytest,Python,Pytest,我正在编写一个pytest插件,它需要警告用户在收集阶段遇到的异常情况,但我没有找到任何方法从我的pytest\u generate\u tests函数中一致地将输出发送到控制台 只有在添加-s选项时,打印和记录模块的输出才会出现在控制台中。我找到的所有与日志记录相关的文档都涉及到内部测试的日志记录,而不是从插件中进行日志记录。最后,我使用了pytest警告基础结构,使用了pytest\u warn()方法,该方法是pytestconfig对象传递给各种挂钩或从各种挂钩以任何方式访问的。例如:

我正在编写一个pytest插件,它需要警告用户在收集阶段遇到的异常情况,但我没有找到任何方法从我的
pytest\u generate\u tests
函数中一致地将输出发送到控制台


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

最后,我使用了pytest警告基础结构,使用了pytest
\u warn()
方法,该方法是pytest
config
对象传递给各种挂钩或从各种挂钩以任何方式访问的。例如:

def pytest_generate_tests(metafunc):
    [...]
    if warning_condition:
        metafunc.config._warn("Warning condition encountered.")
    [...]
这样,如果报告了任何警告,您将在单行摘要中获得附加的
pytest警告
,您可以通过向
pytest
命令行添加“-r w”选项来查看警告详细信息