Robot Framework:从Python库代码访问Robot的全局变量?

问题描述 投票:0回答:2

我有一些设置类型的全局变量,我希望能够从 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
python robotframework
2个回答
33
投票

您将需要使用 rf 的

BuiltIn
库,请阅读此处的文档作为参考。这提供了内置于 Robot Framework 中的关键字,因此应该可靠地保持可用:

from robot.libraries.BuiltIn import BuiltIn
results_path = BuiltIn().get_variable_value("${RESULTS_PATH}")

© www.soinside.com 2019 - 2024. All rights reserved.