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

2024-04-26 06:32:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些设置类型的全局变量,我希望能够从Python代码访问它们。例如:

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

现在,我的模块logger.py文件需要知道正确设置的结果路径。

我知道我可以用一个变量初始化记录器,比如

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

然后在logger中,我将被传递结果路径:

 def __init__(self, results_path):
   # Whatever

但是,这样做的问题是,我想从Python代码和测试用例中访问和使用记录器。因此,如果我这样设置它,如果我想使用Python代码中的记录器,我会遇到同样的问题:需要results_path来正确初始化记录器。

robot框架库中是否有任何函数允许我从Python代码中获取${RESULTS\u 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

Tags: 文件path代码pytesttxtloggerthis
1条回答
网友
1楼 · 发布于 2024-04-26 06:32:18

您需要使用rf的BuiltIn库,for reference read the documentation as found here。这提供了内置在Robot框架中的关键字,因此应该能够可靠地保持可用性:

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

相关问题 更多 >