2017-11-22 10 views
0

シナリオからタグを取得してRubyのステップ定義にする方法は?シナリオからステップ定義で@tagを取得する方法は? - Ruby

**@TAGS** 
Scenario: Showing information of the scenario 
When I execute any scenario 

今私のステップの定義はこれです:

And(/^When I execute any scenario$/) do |page| 
    How to get tag = @TAGS in step definition.. 
end 
+1

なぜあなたはこれをしたいですか?タグの目的は、テストのステップの動作を決定するのではなく、実行するテスト(実行しない)を選択することです。 –

+0

特定のタグを使用したテスト* around *テストを定義すると便利です。別のロギング、または「失敗する」とタグ付きフックの使用を検討することができます:https://github.com/cucumber/cucumber/wiki/Hooks#tagged-hooks –

+0

@TomLord何らかの条件を実行するにはタグが必要です。 –

答えて

1

ない直接的な解決策が、あなたがすることができますフック(前、後、AfterStepの、など)は、特定のタグのために実行するように設定することができ、シナリオでアクセス可能なインスタンス変数を設定し

Before('@my_tag') do # will only run if the test has @my_tag tag 
    @my_tag = true # This instance variable will be accessible in the test 
end 

ます。またBeforeフックが渡されたシナリオを取得しているという事実を使用してのインスタンス変数を設定することを使用することができますタグ名

Before do |scenario| 
    @tags = scenario.source_tag_names # @tags instance variable accessible in test 
end 
関連する問題