使用Python logging在Robot Framework中记录日志

6
我使用 Python 2.7.8 中的 Robot Framework 3.0。Robot Framework 的文档(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.")

我的测试用例是:

*** Test Cases ***
Logtest
    Try logging

当我运行它时,这是一个通过的测试用例,但没有任何记录到HTML日志中。测试执行日志具有套件、用例和关键字,但当我展开它们时,除了“开始/结束/经过时间”行之外,没有任何记录。
我该如何将Python logger消息转发到Robot?正如您所看到的那样,“自动传播”并没有自动工作。我的目标是编写一个可以在有或没有Robot Fw的情况下运行的库。
提前感谢您的帮助。
1个回答

5
经过数小时的代码挖掘,我成功找到了答案。我认为这个答案值得分享,因为如果你遇到类似的问题,它可能会对你有所帮助。
在我的情况下,我导入了一些未使用的库。其中一个是在Robot Framework导入库文件时实例化的类。此对象具有一些日志记录器设置,这些设置混乱了默认设置,这就是为什么我在机器人日志中没有得到任何结果的原因。
没有它,我得到了预期的结果,并且自动传播正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接