一、背景
在使用HTMLTestRunner生成测试报告时,logging日志只能输出到控制台或日志文件中,无法展示在html报告中。
若要展示在html报告中,必须使用print,导致多处使用print和info,且有重复情况,代码不整洁。
二、方案
1、修改[HTMLTestRunnerNew.py]的源码
具体改动:参照:https://www.cnblogs.com/fengf233/p/10871055.html
注意点:
(1)记得import logging
(2)日志收集器的名字必须与自己l定义的日志类的名字一致,否则获取不到
(3)日志输出格式按照源码中设置的格式,而不是日志类设置的格式
优缺点:
优点:html报告可以显示具体测试用例类和执行的代码行数
缺点:需要在源码处改动日志收集器的名字,而且必须固定为一个
日志类封装:
2、重新封装日志类
具体如下(直接上代码):
注意点:必须移除日志,否则日志一直叠加
优缺点:
优点:无需修改源码,复用性强
缺点:
(1)html报告中显示的是日志类和其对应代码行数
(2)logging函数的所有方法都需要重新调用封装
后续:至于为何方法一对应的日志类不可以输出,而方法二的可以,具体还没弄明白