我正在尝试将自定义选项解析器实现为行为配置解析器,但未能做到这一点。
我通过行为来调用behavior_runner.py,这是behavior_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行为补丁修复也无济于事..在此先感谢!
能够找出我自己的答案..而不是尝试向配置解析器添加新选项,我使用环境变量来设置要从中读取的配置节:
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
我认为,对于我的情况,使用环境变量是一个更好的选择...无论如何-只是为那些正在寻找替代方案的人散布了这个词。干杯!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句