我想通过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
您将要使用rf的BuiltIn库,作为参考,请阅读此处的文档。这提供了内置在Robot Framework中的关键字,因此应可靠地保持可用状态:
from robot.libraries.BuiltIn import BuiltIn
results_path = BuiltIn().get_variable_value("${RESULTS_PATH}")
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。