将自定义选项解析器实现为 behave 不起作用

Implementing custom option parser into behave does not work

我正在尝试将自定义选项解析器实现到行为配置解析器中,但未能成功。

我正在通过 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())

我已经试过了 monkey_patching 它也是不行的.. --env 是我要传递给配置解析器以读取 behave.ini 中的一个部分,如下所示:

[dev]
username = x
password = xx
server = xxx
[dev2]
username = y
password = yy
server = yyy

所以在 environment.py 中,我正在阅读使用配置解析器,但我似乎无法将我的自定义选项注入行为解析器,所以它不会选择 behave -E dev 之类的东西以及如何我是从用 if configuration.something.something == 'dev' 放入的自定义解析器中读取它的吗?我搜索了很多地方,所有内容都指向我不想使用的用户数据。

我希望它能像选项解析器一样工作~可以传递默认值但不能传递自定义内容。 #270 在 behave 中的补丁修复对我也没有帮助.. 在此先感谢!

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

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):

set ENV=dev
behave

我认为使用环境变量对我来说是一个更好的选择...无论如何 - 只是为那些正在寻找替代方案的人宣传一下。干杯!