''' func.py '''
import logging
def func():
''' func '''
logging.basicConfig(
format="\t %(filename)s"
" %(funcName)s"
"-ln%(lineno)d"
" %(levelname)s \n%(message)s",
level=logging.DEBUG,
# stream=sys.stdout,
)
logger = logging.getLogger()
logger.info(" >>> logger func info")
logger.warning(" >>> logger func warning")
print(" >>> print func info")
def test_func():
''' test func '''
# caplog.set_level(logging.DEBUG)
func()
if __name__ == "__main__":
test_func()
假设我将上面的代码保存为func.py。
pytest -s func.py
我得到
" >>> print func info".
我如何才能获得
" >>> logger func info"
和
“〉〉〉记录器功能警告”
当我跑步时
pytest -s func.py
我希望我可以这样做,原因如下。我通常会在我的代码中插入logging.debug/info等。有时候,我想在运行pytest时看到logging.debug/info发出的消息。我在网上搜索了很长时间,但没有找到方法。提前感谢你的帮助。
3条答案
按热度按时间nszi6y051#
要在每次运行时默认执行此操作,请在pytest.ini中添加:
注意:如果使用非常旧的pytest,3.5之前的版本,您需要在pytest.ini中设置
log_cli = true
以使用以下命令。否则,对于3.5及更高版本,您可以根据具体情况只使用命令行:
或者说得更清楚些:
命令行将始终覆盖pytest.ini设置。
omhiaaxx2#
您也可以只使用命令行来执行此操作(无需创建pytest.ini):
h7wcgrx33#
当我想知道如何扩展PyTest运行中的“warning summary”部分时,我发现了这个线程。使用环境变量
PYTHONWARNINGS
可以帮助解决这个问题https://docs.python.org/3/using/cmdline.html#envvar-PYTHONWARNINGS。如果您使用export PYTHONWARNINGS=error
,您将看到警告的完整堆栈跟踪。但是,如果您正在运行测试套件,运行将停止。