web-dev-qa-db-ja.com

ビヘイビアでは、どのようにしてシナリオのみを実行しますか?

多くのテストが行​​われている「動作」機能があります。

開発のニーズに合わせて特定のシナリオを実行するだけで済みます。

どうすればいいのですか?

(できればコマンドラインで)

24
Mark Lopez

単一のシナリオのみを実行するには、シナリオの名前で-nを使用できます。

$ behave -n 'clicking the button "foo" should bar the baz'

上記の単一引用符を使用して、シナリオの名前を-nの-​​one引数として保持しています。それ以外の場合、シェルはシナリオ名の各Wordを個別の引数として渡します。

26
Louis

その機能に対して単一のテストを実行したい場合は、-nまたは--nameフラグを使用します。これは、Scenario:の後にテキストが必要なようです。

behave -n 'This is a scenario name'

-iまたは--includeフラグを使用して機能ファイルを実行し、機能ファイルの名前を指定できます。

behave -i file_name.feature

または:

behave --include file_name

--excludeフラグを使用して除外することもできます。

behave -e file_name

詳細については、ドキュメントで コマンドライン引数 を確認してください。付録のセクションには多くの役立つ情報が隠されています。


注:これを書いている時点では、Python 3.6およびBehave 1.2.5では、この issue が原因で動作しません。(UPDATE:1.2。 6はリリースされてこれを修正していますが、python 3.4を使用している場合、そのバージョンはpipから利用できないため、pip3 install git+https://github.com/behave/behave#1.2.6rc)で回避できます。

また、-iフラグのFeature:の後にテキストを渡すことができるはずですが、現在は機能しません。それが再び機能する場合は、誰かに更新を通知してください。また、テストに@wipを追加できるwipフラグをチェックアウトして、-wipがテストを実行するだけでなく、デバッグ用の印刷/ログ記録ステートメントも許可することをお勧めします。

22
Cynic

タグはいくつかのオプションを提供します...

1)遅いものにタグを付けてから、逆で呼び出すことで回避します。

behave -t '~@slow_tag_name'  

2)ただし、最も柔軟性を高めるために、各シナリオに一意のIDをタグ付けすることをお勧めします。例えば@YYYY_MM_DD_HHmm_Initialsタグスキーム。これは十分にユニークであり、トレーサビリティは有用/興味深いものです。その後、いつでもタグを使用して呼び出し、シナリオを実行することができます。

behave @2015_01_03_0936_jh 
4
shufflingb