如何让机器人框架记录在 python 中调用的 python 方法?

Posted

技术标签:

【中文标题】如何让机器人框架记录在 python 中调用的 python 方法?【英文标题】:How to get Robot Framework to log python methods called in python? 【发布时间】:2017-12-19 15:49:11 【问题描述】:

机器人

Test Robot
    [Tags]                             example
    Test

Python:

def robot_keyword(function):
    @functools.wraps(function)
    def wrapper(*args, **kwargs):
        logger.console(function.__name__)
        return BuiltIn().run_keyword(function.__name__)
    return wrapper

def test():
    # BuiltIn().run_keyword('hello')
    hello()

@robot_keyword
def hello():
    logger.console('hi')

因为 run_keyword 没有传递函数指针并尝试再次调用 hello(),所以我遇到了一个循环。

已超出启动关键字的最大限制。

有没有人找到一种方法来在机器人日志中拥有像“hello()”这样的机器人日志功能?

【问题讨论】:

您的代码示例中的缩进不正确。所有函数都在robot_keyword 的定义中吗?请修正缩进。 谢谢,已修复。我可以得到痕迹。我想要嵌套关键字的可折叠 html 树。只是这样我就不会得到大型 python 关键字的巨大平坦跟踪。 【参考方案1】:

可以使用 DEBUG 日志级别进行回溯。

来自机器人框架用户指南部分Debugging problems:

如果默认情况下日志文件没有提供足够的信息,则可以使用较低的日志级别执行测试。例如,使用 DEBUG 级别记录显示代码中发生故障的位置的回溯,当问题出现在单个库关键字中时,此信息非常宝贵。

【讨论】:

以上是关于如何让机器人框架记录在 python 中调用的 python 方法?的主要内容,如果未能解决你的问题,请参考以下文章

你如何让 Discord 机器人响应 DM 中的命令? (Python)

使用带有机器人框架的 python 根记录器

迭代测试机器人框架

如何让python调用C和C++代码

如何在 Robot Framework 中使用 Get Library Instance 调用 Python 库函数

机器人框架中的 Python 库文件