20

BDD テストに python-behave を使用しています。コマンド ラインから URL (例: www.abc.com) を渡す必要があります。

$behave -u "www.abc.com" 

これを達成するために、behavior のドキュメントを読みましたが、behavior.ini ファイルの設定に関する資料や説明が十分ではありません。また、behavior.ini ファイルが引数を渡すのにどのように役立つかわかりません。

ビヘイビアのコマンド ライン パラメータを設定する方法を教えてください。

4

4 に答える 4

30

上記の提案されたソリューションは、過去に必要でした。

振る舞い-1.2.5 は、ユーザーがそのデータを定義できるようにする「ユーザーデータ」の概念を提供します。

behave -D browser=firefox ...

関連項目: 振る舞い: ユーザーデータ

于 2015-02-20T21:56:52.813 に答える
22

古い回答、現在この回答 で説明されているようにそれ自体をサポートしています。

ファイルに定義された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

于 2014-03-28T01:42:33.077 に答える
2

jenisysが言ったように、ユーザーデータを渡す方法は次のとおりです。

behave -D NAME=VALUE

ビヘイビア ステップ ファイルからアクセスする方法は次のとおりです。

context.config.userdata['NAME']
于 2018-12-10T17:13:45.200 に答える