【发布时间】:2016-01-03 23:54:19
【问题描述】:
出于学习目的,我想遵循机器人框架 python 库中的执行路径。 其实ssh library
最好的方法是什么?
我查看了 debug lib ,它似乎为我提供了设置断点和生成新 shell 的能力。但是我想检查执行流程、堆栈和变量值集。类似 pudb 但通过 pybot 触发的东西。这可能吗?
【问题讨论】:
标签: python robotframework
出于学习目的,我想遵循机器人框架 python 库中的执行路径。 其实ssh library
最好的方法是什么?
我查看了 debug lib ,它似乎为我提供了设置断点和生成新 shell 的能力。但是我想检查执行流程、堆栈和变量值集。类似 pudb 但通过 pybot 触发的东西。这可能吗?
【问题讨论】:
标签: python robotframework
您可以将 pdb 与机器人一起使用。如何执行此操作记录在机器人框架用户指南中,标题为 Using the python debugger (pdb) 的部分中。
它给出的例子是在你想设置断点的地方添加这个:
import sys, pdb; pdb.Pdb(stdout=sys.__stdout__).set_trace()
【讨论】:
由于我更喜欢使用 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()
【讨论】:
可以直接在机器人文件中调试,无需创建关键字:
Evaluate pdb.Pdb(stdout=sys.__stdout__).set_trace() modules=sys, pdb
【讨论】: