学習目的で、ロボットフレームワークの実行パスをたどりたいpythonライブラリ。実際には sshライブラリ
これを行うための最良の方法は何ですか?
debug lib を見てきましたが、これはブレークポイントを設定して新しいシェルを生成する機能を提供しているようです。ただし、実行フロー、スタック、および設定された変数値を調べたいと思います。 pudbのようなものですが、pybotを介してトリガーされます。これは可能ですか?
ロボットでpdbを使用できます。その方法は、ロボットフレームワークのユーザーガイドの「 pythonデバッガー(pdb)を使用する 」というタイトルのセクションに記載されています。
例として、ブレークポイントを設定する場所にこれを追加します。
import sys, pdb; pdb.Pdb(stdout=sys.__stdout__).set_trace()
キーワードを作成せずに、ロボットファイルで直接デバッグできます。
Evaluate pdb.Pdb(stdout=sys.__stdout__).set_trace() modules=sys, pdb
私はpdbよりもipdbを使用する方が好きなので、ロボットで使用する方法は次のとおりです。
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()