在 Robot Framework 中使用 Python 日志记录

bar*_*osd 6 python logging python-2.7 robotframework

我在Python 2.7.8下使用机器人框架3.0。机器人框架的文档(http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#programmatic-logging-apis)指出

除了新的公共日志记录 API 之外,Robot Framework 还提供对 Python 标准日志记录模块的内置支持。这样一来,模块的根记录器接收到的所有消息都会自动传播到 Robot Framework 的日志文件中。

我制作了一个简短的库文件来测试这一点:

from logging import debug, error, info, warn

def try_logging():
    info("This is merely a humble info message.")
    debug("Most users never saw me.")
    warn("I warn you about something.")
    error("Something bad happened.")
Run Code Online (Sandbox Code Playgroud)

我的测试用例是:

*** Test Cases ***
Logtest
    Try logging
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它是一个“通过”的情况,但没有任何内容记录到 HTML 日志中。测试执行日志具有应有的西装、案例和关键字,但是当我展开它们时,除了“开始/结束/已过去”行之外,没有记录任何内容。

如何将 Python 记录器消息转发给 Robot?正如您所看到的,所谓的自动传播并不会自动运行。我的目标是编写一个可以在有或没有 Robot Fw 的情况下运行的库。

提前寻求您的帮助。

bar*_*osd 5

经过几个小时的代码挖掘,我终于找到了答案。我认为值得分享,因为如果您遇到类似问题,它可能会对您有所帮助。

就我而言,我导入了一些未使用的库。其中之一是 Robot Framework 导入库文件时实例化的类。该对象的一些记录器设置扰乱了默认设置,这就是为什么我在机器人日志中没有得到结果。

没有它,我得到了预期的结果,并且自动传播工作得很好。