古い回答、現在この回答
で説明されているようにそれ自体をサポートしています。
ファイルに定義されたparserがあり、定義されたオプションのみを許可するため、できません。configuration.py
ただし、(monkey patch の助けを借りて) できるようにしたい場合は、他のオプションと同じオプションを this に追加してくださいparser。
これを行うには、最初にたとえばファイルを作成し、実行する前にbehave_run.pyこれにパッチを適用します:parserbehave
from behave import configuration
from behave import __main__
# Adding my wanted option to parser.
configuration.parser.add_argument('-u', '--url', help="Address of your url")
# command that run behave.
__main__.main()
を実行するpython behave_run.py --helpと、新しいurlオプションが表示されます。
$ python behave_run.py --help | grep url
-u URL, --url URL Address of your url
これで、このbehave_run.pyファイルを file のように実行behaveして、url 引数も渡すことができます。
$ python behave_run.py --url http://google.com
そして、このurlオプションの値にcontext.config.url、たとえばenvironment.pyファイルでアクセスして、他の関数で使用するように設定できます。
def before_all(context):
context.browser = webdriver.Firefox()
context.url = context.config.url
ノート:
python run_behave.pyどこからでもasを呼び出したい場合はrun_behave.py、次の行を追加します。
#!/usr/bin/env python
の最初の行にrun_behave.py移動し、モードを実行可能ファイルに変更してから、chmod +x run_behave.pyこのファイルを の 1 つの場所にコピーしますPATH。/usr/local/binsudo mv run_behave.py /usr/local/bin/run_behave.py