开发者社区> 问答> 正文

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

我想通过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

展开
收起
祖安文状元 2020-02-23 16:04:41 1262 0
1 条回答
写回答
取消 提交回答
  • 您将要使用rf的BuiltIn库,作为参考,请阅读此处的文档。这提供了内置在Robot Framework中的关键字,因此应可靠地保持可用状态:

    from robot.libraries.BuiltIn import BuiltIn
    results_path = BuiltIn().get_variable_value("${RESULTS_PATH}")
    
    2020-02-23 16:04:49
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载