我的项目中的单元测试输出中存在问题。这不是一个大问题,但我不理解原因并希望研究原因。
环境:
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)app的模块从conf导入lg并使用它来收集日志事件
3)我也为app模块添加了unittest
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流。
此外,我很乐意获得更好的做法建议。