RobotFramework在Django项目中日志缺失INFO/WARN的问题求助
问题分析与解决方案
这种差异通常是因为Robot Framework在不同执行环境下的日志级别默认配置不同,或者Django运行环境的输出流设置干扰了Robot的日志捕获逻辑。
核心原因
在IDLE中直接执行代码时,Robot Framework使用默认的日志级别配置(默认会记录INFO及以上所有级别日志);但在Django环境中,大概率遇到了以下两种情况之一:
- Django项目的全局日志系统或输出流重定向(比如修改了
sys.stdout/sys.stderr),导致Robot生成的INFO、WARN级日志没有被正确写入到log.html中; run_test函数在Django环境下的默认日志级别被间接覆盖,仅捕获了FAIL及更高级别的日志。
快速解决方法
你可以在调用run_test时显式指定日志级别参数,强制让Robot记录INFO和WARN信息:
from robot import run as run_test # 显式设置日志级别为INFO,会包含INFO、WARN、ERROR、FAIL等所有级别日志 run_test('<我的HTML测试文件路径>.html', loglevel='INFO')
如果修改后仍有问题,可以进一步排查输出流的影响:如果Django项目中有全局的输出流修改逻辑,可以在调用run_test前临时恢复默认输出流,测试完成后再恢复原有设置。
验证小技巧
也可以在调用时同时开启控制台日志输出,方便排查日志是否正常生成:
run_test('<我的HTML测试文件路径>.html', loglevel='INFO', console='INFO')
这样INFO级日志会同步打印到控制台,能快速判断是日志未生成还是未写入文件的问题。
内容的提问来源于stack exchange,提问作者Manuel Santi
相关产品推荐
相关产品推荐

