我试图将自定义选项解析器实现为行为配置解析器,但还没有能够这样做。
我通过表现来调用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的补丁修复也没有帮助我...提前感谢!
答案 0 :(得分: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
我认为使用环境变量对我的案例来说是一个更好的选择......无论如何 - 只是为那些寻找替代品的人传播这个词。干杯!