python - python:日志记录和单元测试
问题描述
我的项目中的单元测试输出有问题。这不是一个大问题,但我不明白原因,想研究一下。
环境:
1) conf.py 包含记录器的定义
fh = logging.FileHandler(LOG_FILE_NAME)
ff = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - (message)s')
fh.setFormatter(ff)
ch = logging.StreamHandler()
cf = logging.Formatter('%(levelname)s - %(message)s')
ch.setFormatter(cf)
lg = logging.getLogger('logger')
lg.setLevel(LOG_LEVEL)
lg.addHandler(ch)
lg.addHandler(fh)
2) 应用程序的模块从 conf 中导入 lg 并使用它来收集日志事件
3)我还为一个应用模块添加了单元测试
4)当我运行测试时
python3 -m unittest -v project/tests/test-module.py
我得到了下一个控制台输出:
test_init_ok (project.tests.test-module.TestReportData) ... ok
test_set_report (project.tests.test-module.TestReportData) ... DEBUG - Report is {} ok
我不知道为什么来自原始 sys.stdout(来自 conf)的最后一条消息被发送到 unittest 流。
我也很高兴得到更好的做法的建议。
解决方案
推荐阅读
- python - Python Scikit-Learn DecisionTreeClassifier.fit() 抛出 KeyError: 'default'
- ibm-doors - 运行 DXL 代码时出现意外错误“标识符使用不正确”
- python - 根据 youtube api 中的区域获取视频点赞数
- django - 如何在 Django 中自动保存 Slug?
- c# - QnA 调用在 Bot Framework 中失败,无论是本地还是部署
- javascript - 执行功能的浏览器扩展弹出窗口
- c# - 如何将控件的 BackColor(或其他属性)绑定到存储在 DataSource 中的字符串值?
- c# - BLE扫描设备
- sql - 如何设置存储过程以正确排序
- json - 如何将带有键值的 JSON 文件转换为 apache 骆驼头 - Spring DSL