問題の背景:「web_steps.rbを使用したキュウリの宣言型ステップ定義」スタックオーバーフローの質問
問題の問題のトラブルシューティングでは、2つの矛盾するエラーメッセージが表示されます。ステートメントで:
When /^(?:|I )uncheck "([^"]*)"$/ do |field|
check(field)
end
'features / step_definitions /movie_steps.rb'に追加された'bundleexec cucumber features/filter_movie_list.feature'の実行結果は次のとおりです。
Ambiguous match of "I uncheck "ratings_G"":
features/step_definitions/movie_steps.rb:65:in '/^(?:|I )uncheck "([^"]*)"$/
features/step_definitions/web_steps.rb:65:in '/^(?:|I )uncheck "([^"]*)"$/
ただし、ステップを削除しても、「web_steps.rb」からのステップ定義が使用されることはありません。むしろ、別のエラーメッセージが表示されます。
When I uncheck the following ratings: G, PG-13 # features/step_definitions/movie_steps.rb:44
Undefined step: "When I uncheck "ratings_G"" (Cucumber::Undefined)
./features/step_definitions/movie_steps.rb:52:in `block (2 levels) in <top (required)>'
./features/step_definitions/movie_steps.rb:49:in `each'
./features/step_definitions/movie_steps.rb:49:in `/I (un)?check the following ratings: (.*)/'
features/filter_movie_list.feature:30:in `When I uncheck the following ratings: G, PG-13'
2つの場所に2つの定義がある場合、Cucumberがステップが冗長であると不平を言うことができますが、後で、重複が削除されたときにまったく同じステップが定義されていないと不平を言うことができますか?2番目のエラーメッセージが実際に述べられているもの以外の何かを意味している可能性はありますか?
PS:構成は、CS169.x1 @edX..の補助輪を備えたCucumberインストールによって到達しました。