1

Я пытаюсь реализовать настраиваемый парсер параметров в behair config parser, но так и не смог.Внедрение настраиваемого парсера параметров в 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, я читал, используя конфигурационный парсер, но я не могу показаться, чтобы ввести свой собственный вариант в парсере поведения, поэтому он не подбирает somet hing как behave -E dev и как я прочитал его из пользовательского парсера, который я положил с помощью if configuration.something.something == 'dev'? Я искал довольно много мест, и все указывает на пользовательские данные, которые я не хочу использовать.

Я хочу, чтобы это сработало, что-то похожее на парсер параметров ~ может проходить по умолчанию, но не в обычном режиме. исправление патча #270 в behave не помогает мне тоже .. спасибо заранее!

ответ

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 

И я бег с (в окнах):

set ENV=dev 
behave 

Я думаю, с помощью переменной среды, был лучшим вариантом для моего случая ... в любом случае - просто распространяя слово для тех, кто ищет альтернативу. Ура!