2015-06-26 44 views
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就是我想要的通過在該配置解析器讀取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

能找出我自己的答案..而不是試圖增加新的選項來配置解析器,我使用環境變量設置哪些配置節我要讀:

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 

我想使用環境變量是我的情況下,更好的選擇......總之 - 只是傳播對於那些誰正在尋找一個替代詞。乾杯!