将自定义选项解析器实现为 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
我认为使用环境变量对我来说是一个更好的选择...无论如何 - 只是为那些正在寻找替代方案的人宣传一下。干杯!
我正在尝试将自定义选项解析器实现到行为配置解析器中,但未能成功。
我正在通过 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
我认为使用环境变量对我来说是一个更好的选择...无论如何 - 只是为那些正在寻找替代方案的人宣传一下。干杯!