23

Python コードからアクセスできるようにしたい設定タイプのグローバル変数がいくつかあります。例えば:

pybot --variable RESULTS_PATH:/wherever/this/points test.txt

ここで、私のモジュールlogger.pyファイルは、適切に設定するために results_path を知る必要があります。

次のような変数でロガーを初期化できることを知っています

***Settings***
Library  logger  ${RESULTS_PATH}

そして、ロガーで results_path が渡されます:

 def __init__(self, results_path):
   # Whatever

しかし、私にとってこのようにすることの問題は、Pythonコードとテストケースの両方からロガーにアクセスして使用したいということです。したがって、このように設定すると、Python コードからロガーを使用したい場合、ロガーを適切に初期化するために results_path が必要になるという同じ問題に遭遇します。

ロボット フレームワーク ライブラリに、Python コードから ${RESULTS_PATH} の値を取得できる関数はありますか? このようなことを行う適切な方法は何ですか?

現在、この問題の回避策は、RESULTS_PATH を環境変数として設定することです。だから私は次のようなものを持っています:

次のように実行します。

RESULTS_PATH=/wherever/this/points pybot test.txt

ファイルtest.txt:

***Settings***
Library  logger
...

ファイルlogger.py:

results_path = os.environ["RESULTS_PATH"]
# Other set up stuff
4

1 に答える 1

30

rf のBuiltInライブラリを使用する場合は、ここにあるドキュメントを参照してください。これにより、Robot Framework に組み込まれているキーワードが提供されるため、確実に使用できるようになります。

from robot.libraries.BuiltIn import BuiltIn
results_path = BuiltIn().get_variable_value("${RESULTS_PATH}")
于 2013-01-18T07:48:22.843 に答える