キュウリのシナリオを保留としてマークして、合格としてカウントされないようにするにはどうすればよいですか?
Scenario: Guest should not see edit link
# pending implementation
保留中としてマークできませんか?
これはわかりました。
シナリオステップは、ステップファイルのいずれにも見つからない場合、保留中としてマークされます。
Scenario: New product form should have some special field
Given joe is logged in as an user
When on the new exercise page
Then the select field should have some special field
保留中のステップをスタブするのに十分なほどです。
When /^on the new exercise page$/ do
pending # express the regexp above with the code you wish you had
end
@wipタグの問題は、テストスイートが黄色にならないことです。 wip機能は完全に無視され、存在することを忘れがちです。これは、シナリオが@wipとしてタグ付けされてから忘れられたときに、私のチームを後ろから噛みました。もっと良い解決策があったらいいのに。私が持っている最高のものはこのカスタムステップを追加することです:
Given /^PENDING/ do
pending
end
実際の機能を保留中としてマークするのではなく、次のようにメッセージとともにこれをラインナップに追加できます。
Given PENDING: we need client input
次に、次のように表示されます。
(::) pending steps (::)
features/example.feature:15:in `Given PENDING: we need client input'
保留中は一連のテストを停止しますが、キュウリが同じシナリオで続く未定義のステップについてしつこいことを防ぐことはありません。また、理想的には失敗し保留中の機能は、失敗したシナリオのnameを通知しますが、そうではありません。
別の可能性は、@ wipタグ(進行中の作業)です。 @wipのタグが付いたシナリオは、デフォルトでは実行されませんが、明示的に要求したときに実行されます。
@wip
Scenario: New product form should have some special field
Given I still work on this feature
このようにして、自動ビルドから一部のシナリオを除外して、機能の作業中に中断しないようにすることができます。
Averellの答えに加えて、キュウリを実行するときにシナリオタグを除外できます。
@todo
および@wip
は、仕掛品のシナリオで使用するか、保留中のシナリオをマークするだけのタグで、次のような機能を実行します。
cucumber --tags ~@todo --tags ~@wip
Guard を使用している場合は、次のようにします。
guard 'cucumber', :notification => true, :all_on_start => true,
:cmd => "bundle exec cucumber",
:cli => "--tags ~@todo --tags ~@wip" do
watch(%r{^features/.+\.feature$})
watch(%r{^features/support/.+$}) { 'features' }
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
Dir[File.join("**/#{m[1]}.feature")][0] || 'features'
end
end