1

我正在尝试将自定义选项解析器实现为行为配置解析器,但无法这样做。

我通过行为调用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 是我想要传递给配置解析器以从行为.ini 中读取部分的内容,如下所示:

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

所以在 environment.py 中,我正在阅读 using config 解析器,但我似乎无法将自定义选项注入到行为解析器中,因此它没有获取类似的behave -E dev内容,以及如何从我拥有的自定义解析器中读取它放入一个if configuration.something.something == 'dev'?我搜索了很多地方,一切都指向我不想使用的用户数据。

我希望它的工作类似于选项解析器 ~ 可以传入默认值但不能传入自定义内容。#270在行为中的补丁修复对我也没有帮助..提前谢谢!

4

1 回答 1

0

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

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

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

于 2015-06-30T20:28:44.617 回答