pytest如何在src代码中启用print()?
How can pytest enable print() in src code?
这是我的代码
在module.py中:
def myFunc():
print('aaa')
在测试中_module.py:
def test_myFunc():
print('bbb')
myFunc()
如果我 运行 pytest -s test_module.py
那么我可以看到打印输出 bbb
;但我看不到打印输出 aaa
。
其实我也试过import logging
玩记录器,也没有运气。
所以基本上我的问题是,当触发 pytest
时,我们如何从 src 代码中看到打印输出?
我可以确认 pytest -s
完成了这项工作。
pytest -s test_module.py
# test_module.py bbb
# aaa
然而,使用 Python logging
模块进行调试可能是更好的主意。例如,您只需要导入 logging
并通过对 logging.info()
的适当级别调用来替换打印。
# module.py
import logging
def myFunc():
logging.info('aaa')
# test_module.py
from module import myFunc
import logging
def test_myFunc():
logging.info('bbb')
myFunc()
这是输出。
pytest --log-cli-level=INFO test_module.py
# INFO root:test_module.py:6 bbb
# INFO root:module.py:4 aaa
有关日志记录的 Pytest doc 更多信息。
这是我的代码
在module.py中:
def myFunc():
print('aaa')
在测试中_module.py:
def test_myFunc():
print('bbb')
myFunc()
如果我 运行 pytest -s test_module.py
那么我可以看到打印输出 bbb
;但我看不到打印输出 aaa
。
其实我也试过import logging
玩记录器,也没有运气。
所以基本上我的问题是,当触发 pytest
时,我们如何从 src 代码中看到打印输出?
我可以确认 pytest -s
完成了这项工作。
pytest -s test_module.py
# test_module.py bbb
# aaa
然而,使用 Python logging
模块进行调试可能是更好的主意。例如,您只需要导入 logging
并通过对 logging.info()
的适当级别调用来替换打印。
# module.py
import logging
def myFunc():
logging.info('aaa')
# test_module.py
from module import myFunc
import logging
def test_myFunc():
logging.info('bbb')
myFunc()
这是输出。
pytest --log-cli-level=INFO test_module.py
# INFO root:test_module.py:6 bbb
# INFO root:module.py:4 aaa
有关日志记录的 Pytest doc 更多信息。