1

問題の背景:「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インストールによって到達しました。

4

1 に答える 1

0

エラーメッセージで発生するWhen I uncheck "ratings_G"呼び出しとある程度一致する、という定義が1つあるようです。When I uncheck the following ratings: G, P-13キュウリは後者に匹敵するものは何もないと不平を言っています。それはあなたのコードに存在しますか?

ある程度一致していると、最初に受け取ったあいまいさの警告を説明できる可能性があります。定義は一致しますが、文字列内にあるものとは一致しません。

于 2012-11-26T07:19:27.940 に答える