web-dev-qa-db-ja.com

キュウリのシナリオをどのように保留中としてマークしますか

キュウリのシナリオを保留としてマークして、合格としてカウントされないようにするにはどうすればよいですか?

Scenario: Guest should not see edit link
# pending implementation

保留中としてマークできませんか?

42
jspooner

これはわかりました。

シナリオステップは、ステップファイルのいずれにも見つからない場合、保留中としてマークされます。

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
21
jspooner

@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を通知しますが、そうではありません。

58
Jaime Bellmyer

別の可能性は、@ wipタグ(進行中の作業)です。 @wipのタグが付いたシナリオは、デフォルトでは実行されませんが、明示的に要求したときに実行されます。

@wip
Scenario: New product form should have some special field
  Given I still work on this feature

このようにして、自動ビルドから一部のシナリオを除外して、機能の作業中に中断しないようにすることができます。

23
averell

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
1
dsci