2012-04-23 15 views
5

私は、機能内のすべてのシナリオを実行した後にステップを実行したいのですが、全機能のアフターフックを持つことができますか、現在各シナリオのフックを持っています。キュウリの全機能のフック

+0

[このGithub wikiページ](https://github.com/cucumber/cucumber/wiki/Hooks)に基づいて、あなたはシナリオ、ステップ、タグ、またはグローバル規模ではありませんが、機能に基づいていません。 – MrDanA

+0

なぜ、各フィーチャーの後に何かを実行したいが、各シナリオの後には実行しないのはなぜですか?すべてのテストで使用しているデータを設定していますが、機能の実行終了時にデータを破棄したいのですか? –

答えて

-2

もちろん、あなたの機能にタグを付けるだけです。

After('@mytag') do 
    #Do your magic here 
end 

このドキュメントは役立つかもしれない:http://cukes.info/cucumber/api/ruby/latest/Cucumber/RbSupport/RbDsl.html#AfterStep-instance_method

+1

シナリオごとに特定のタグの後に実行されますが、フィーチャー全体(つまり、users.feature)の後(および後にのみ)では実行されません。 – MrDanA

+0

ああ、私は疑問を誤解しました。 –

3

を、私はそのは久しぶり知っているが、私はこのように使用され、出口のフックがあり、長いけど、 のためにここにユーザーとなってhaventは:

at_exit do 
    # Add code here 
end 

これは

はここのだあなたenv.rbファイルまたは機能/ supportディレクトリに配置する必要があります10

+0

'at_exit'コードは、すべての機能の後に呼び出され、1つの機能の後には呼び出されません。 –

0

カスタムフォーマッタを使用して、after_featureメソッドを使用できます。

(私はより多くの情報とのリンクを持っていたが、ちょうどその利用できなくなっていることを指摘し@katta)

+0

あなたのリンクはパスワードで保護されています – katta

0

それは、回避策の少しですが、あなただけの開始時と終了時のシナリオを持つことができますセットアップ/ティアダウンの機能のシナリオは、設定シナリオが上部にあり、ティアダウンが下部にある場合は正常に動作する限り、指定された順序で実行されます。

また、結果をフォーマッタに出力するときに、「シナリオ:シナリオ:フィーチャセットアップ」と「シナリオ:フィーチャカルティアダウン」という名前を付け加えてください。

関連する問題