Wie zu beheben eine Gurke::Mehrdeutig match-Fehler beim testen ein CLI in Aruba
Ich bin zu lernen, zu testen CLI mit Aruba mit dieser guide, dass ist ein paar Jahre alt. Ich erhalte eine Fehlermeldung
Cucumber::Ambiguous match error
Nachdem wir uns durch mehrere Beispiele dieser Art von Fehler, ich bin noch nicht sicher, was zu tun ist.
Scenario: Recipes
When I run `foodie recipe dinner steak`
Then the following files should exist:
| dinner/steak.txt |
Then the file "dinner/steak.txt" should contain:
"""
##### Ingredients #####
Ingredients for delicious steak go here.
##### Instructions #####
Tips on how to make delicious steak go here.
"""
in features/step_definitions/extra_aruba_steps.rb
ich habe diesem zusätzlichen Schritt:
Then /^the file "([^"]*)" should contain:$/do |file, content|
check_file_content(file, content, true)
end
Kann jemand erklären, diesen Fehler, und was anders machen um es zu beheben.
Vielen Dank im Voraus
Update nach Peter Alfrin Kommentar:
Habe ich aruba/Gurke enthalten, die den Zugang zu all diese vordefinierten Schritte
Voller Fehler-Ausgabe:
Then the file "dinner/steak.txt" should contain: # features/generator.feature:10
"""
##### Ingredients #####
Ingredients for delicious steak go here.
##### Instructions #####
Tips on how to make delicious steak go here.
"""
Ambiguous match of "the file "dinner/steak.txt" should contain:":
aruba-0.5.3/lib/aruba/cucumber.rb:300:in `/^the file "([^"]*)" should contain:$/'
features/step_definitions/aruba_ext_steps.rb:1:in `/^the file "([^"]*)" should contain:$/'
You can run again with --guess to make Cucumber be more smart about it
(Cucumber::Ambiguous)
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:147:in `step_match_without_cache'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:138:in `step_match'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:68:in `step_match'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_invocation.rb:83:in `find_step_match!'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_invocation.rb:56:in `invoke'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_invocation.rb:38:in `accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:106:in `block in visit_step'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:105:in `visit_step'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_collection.rb:19:in `block in accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_collection.rb:18:in `each'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/step_collection.rb:18:in `accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:100:in `block in visit_steps'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:99:in `visit_steps'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:15:in `block in execute'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:82:in `block (2 levels) in with_hooks'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:98:in `before_and_after'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:81:in `block in with_hooks'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:120:in `call'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:120:in `block (3 levels) in around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/language_support/language_methods.rb:9:in `block in around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/language_support/language_methods.rb:97:in `call'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/language_support/language_methods.rb:97:in `execute_around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/language_support/language_methods.rb:8:in `around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:119:in `block (2 levels) in around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:123:in `call'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime/support_code.rb:123:in `around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:93:in `around'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:80:in `with_hooks'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:13:in `execute'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/scenario.rb:32:in `block in accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/scenario.rb:79:in `with_visitor'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/scenario.rb:31:in `accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:58:in `block in visit_feature_element'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:57:in `visit_feature_element'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/feature.rb:38:in `block in accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/feature.rb:37:in `each'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/feature.rb:37:in `accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:27:in `block in visit_feature'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:26:in `visit_feature'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/features.rb:28:in `block in accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/features.rb:17:in `each'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/features.rb:17:in `each'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/features.rb:27:in `accept'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:21:in `block in visit_features'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/ast/tree_walker.rb:20:in `visit_features'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/runtime.rb:48:in `run!'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/lib/cucumber/cli/main.rb:47:in `execute!'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/gems/cucumber-1.3.4/bin/cucumber:13:in `<top (required)>'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/bin/cucumber:23:in `load'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/bin/cucumber:23:in `<main>'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
/Users/Brian/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'
features/generator.feature:10:in `Then the file "dinner/steak.txt" should contain:'
Failing Scenarios:
cucumber features/generator.feature:6 # Scenario: Recipes
- Sie haben weitere Schritt-Definitionen, könnte mit der
Then
Klausel in Ihrem test? - Werfen Sie einen Blick auf die aktualisierte Frage. Gibt es einen link zu den anderen enthaltenen Schritte. Ich hätte klug genug, um in den ersten Platz. Vielen Dank für Eure Hilfe
- Sind Sie immer zusätzliche Ausgabe mit dem Fehler? Ich suchte die Gurke/Gurken-repository und es scheint, dass
Ambiguous
ist immer angehoben mit zusätzlichen Ausgang. - nach einem Blick auf die vorab definierten Schritten sieht es wie der Schritt, den ich Hinzugefügt ist schon drin.
Then /^the file "([^"]*)" should contain "([^"]*)"$/ do |file, partial_content|; check_file_content(file, partial_content, true); end;
. Allerdings konnte er sich nicht abholen, das erste mal und fragte mich, um zu definieren, den Schritt. Nicht sicher, warum - Das ist, was ich vermutete, aber ich bin immer noch Fragen, über die Fehler-Ausgabe. Würde es Ihnen etwas ausmachen sharing die vollständige Fehlermeldung?
- Ich Hinzugefügt, um die Fehlermeldung. Lassen Sie mich wissen, wenn es etwas anderes ist. Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesem Thema bedeckt ist unkompliziert in https://github.com/cucumber/cucumber/wiki/Step-Definitions#ambiguous-steps
Wenn der text einer Gurke Schritt ist die übereinstimmung der Muster von zwei oder mehr Schritt Definitionen, dann Gurke erhöhen
Ambiguous
es sei denn, die--guess
option ist angegeben, in welchem Falle Gurke wird ein pick willkürlich.Als beiseite, es ist hilfreich, wenn Sie den vollen text der Fehlermeldung in irgendeiner Frage ALSO, besonders, wenn die Fehlermeldung enthält so viel information wie in diesem Fall.
aruba_ext_steps
den Schritt in die vorgegebenen Schritte nicht verwendet wurde. Warum ist das so? In anderen Worten, die vordefinierten Schritt sollte gearbeitet haben? das ist es nicht. Nun, wenn ich den extra Schritt bekomme ich einen Mehrdeutiger passen, weil es sieht zu dem gleichen Schritt-Definitionen. Ich macht keinen Sinn. Das ist die Frage..... Auch habe ich versucht--guess
und bekam den gleichen Fehler.--guess
mit dem zusätzlichen Schritt definition und es immer noch erhobenAmbiguous
oder Sie versucht--guess
ohne der zusätzliche Schritt-definition und es immer noch nicht finden, eine passende definition?aruba_ext_steps
aber ohne step-definition in der Datei übereinstimmt? Ich weiß, das sollte nicht nötig sein, ich versuche nur das problem zu isolieren.aruba_ext_steps
und seiner Weitergabe. Es ist Kommissionierung bis die Schritt-definition, die im Voraus definiert nun aber, aus welchem Grund auch immer es vorher nicht. Vielen Dank für Eure Hilfe