【问题标题】:Debugging robot framework python keyword libraries调试机器人框架python关键字库
【发布时间】:2016-01-03 23:54:19
【问题描述】:

出于学习目的,我想遵循机器人框架 python 库中的执行路径。 其实ssh library

最好的方法是什么?

我查看了 debug lib ,它似乎为我提供了设置断点和生成新 shell 的能力。但是我想检查执行流程、堆栈和变量值集。类似 pudb 但通过 pybot 触发的东西。这可能吗?

【问题讨论】:

    标签: python robotframework


    【解决方案1】:

    您可以将 pdb 与机器人一起使用。如何执行此操作记录在机器人框架用户指南中,标题为 Using the python debugger (pdb) 的部分中。

    它给出的例子是在你想设置断点的地方添加这个:

    import sys, pdb; pdb.Pdb(stdout=sys.__stdout__).set_trace()
    

    【讨论】:

    • 做到了,我打开了 lib/python2.7/site-packages/SSHLibrary/library.py 并添加了 import sys, pdb; pdb.Pdb(stdout=sys.__stdout__).set_trace() 到一个关键字函数。
    【解决方案2】:

    由于我更喜欢​​使用 ipdb 而不是 pdb,所以这是我将它与机器人一起使用的方法

    import ipdb; ipdb.stdout.update_stdout(); ipdb.stdout.set_trace()
    

    提示:由于某种原因,自动完成不会使用 pdb 或 ipdb 工作,所以如果你关心自动完成,你需要通过 pip install pdbpp 安装 pdbpp 然后将此添加到您的代码中

    import sys
    import pdb
    for attr in ('stdin', 'stdout', 'stderr'):
        setattr(sys, attr, getattr(sys, '__%s__' % attr))
    pdb.set_trace()
    

    【讨论】:

      【解决方案3】:

      可以直接在机器人文件中调试,无需创建关键字:

      Evaluate    pdb.Pdb(stdout=sys.__stdout__).set_trace()    modules=sys, pdb
      

      https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#using-the-python-debugger-pdb

      【讨论】:

        猜你喜欢
        • 2013-11-08
        • 2015-10-14
        • 2019-06-11
        • 2017-12-19
        • 1970-01-01
        • 2021-08-15
        • 2015-11-07
        • 2018-06-27
        • 2019-07-04
        相关资源
        最近更新 更多