Python 在behave中实现自定义选项解析器不起作用

Python 在behave中实现自定义选项解析器不起作用,python,configuration,configparser,user-data,python-behave,Python,Configuration,Configparser,User Data,Python Behave,我正试图在behave config解析器中实现一个自定义选项解析器,但未能实现 我通过behave打电话给behave_runner.py 这是behave_runner.py: if __name__ == "__main__": configuration.setup_parser().add_argument('-E', '--env', help="pass in the environment") sys.exit(__main__.main()) 我试过用猴子来修补它,这也是不可

我正试图在behave config解析器中实现一个自定义选项解析器,但未能实现

我通过behave打电话给behave_runner.py 这是behave_runner.py:

if __name__ == "__main__":
configuration.setup_parser().add_argument('-E', '--env', help="pass in the environment")
sys.exit(__main__.main())
我试过用猴子来修补它,这也是不可能的。。 --env是我想要传递给配置解析器的内容,用于从behave.ini读取一个部分,如下所示:

[dev]
username = x
password = xx
server = xxx
[dev2]
username = y
password = yy
server = yyy
因此,在environment.py中,我正在阅读using-config解析器,但我似乎无法将我的自定义选项注入behave解析器,因此它不会拾取类似于
behave-E dev
的内容,我如何从自定义解析器中读取它,我已经将它与
if configuration.something.something='dev'
?我搜索了很多地方,所有东西都指向userdata,这不是我想要使用的


我希望它能像option parser~一样工作,可以传递默认值,但不能传递自定义内容。行为上的补丁也帮不了我。。提前谢谢

我能想出自己的答案。。我没有尝试向配置解析器添加新选项,而是使用环境变量设置要从中读取的配置节:

import os
env = os.environ.get('ENV', failobj='dev')
if env in 'dev':
//do stuff here
elif env in 'dev2':
//do some other stuff here
我使用(在windows中)运行此功能:


我认为使用环境变量对我的案例来说是一个更好的选择。。。不管怎样-只是为那些正在寻找替代方案的人传播信息。干杯

我能想出自己的答案。。我没有尝试向配置解析器添加新选项,而是使用环境变量设置要从中读取的配置节:

import os
env = os.environ.get('ENV', failobj='dev')
if env in 'dev':
//do stuff here
elif env in 'dev2':
//do some other stuff here
我使用(在windows中)运行此功能:

我认为使用环境变量对我的案例来说是一个更好的选择。。。不管怎样-只是为那些正在寻找替代方案的人传播信息。干杯