web-dev-qa-db-ja.com

ロボットフレームワークのデバッグpythonキーワードライブラリ

学習目的で、ロボットフレームワークの実行パスをたどりたいpythonライブラリ。実際には sshライブラリ

これを行うための最良の方法は何ですか?

debug lib を見てきましたが、これはブレークポイントを設定して新しいシェルを生成する機能を提供しているようです。ただし、実行フロー、スタック、および設定された変数値を調べたいと思います。 pudbのようなものですが、pybotを介してトリガーされます。これは可能ですか?

11
Dave

ロボットでpdbを使用できます。その方法は、ロボットフレームワークのユーザーガイドの「 pythonデバッガー(pdb)を使用する 」というタイトルのセクションに記載されています。

例として、ブレークポイントを設定する場所にこれを追加します。

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

キーワードを作成せずに、ロボットファイルで直接デバッグできます。

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

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

0
Ramon Medeiros

私は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()
0
IslamTaha