Closed varunwy closed 11 years ago
I debugged this further and located the problem: Method: visit_step_result in /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb calls 'broadcast' with 8 arguments broadcast(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line) which in turn calls Method: after_step_result in file: /usr/lib/ruby/gems/1.8/gems/cucumber-nagios-0.9.2/lib/cucumber/formatter/nagios.rb. The method after_step_result is defined with 7 arguments only.
def after_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background) record_result(status, :step_match => step_match, :keyword => keyword) end
I fave fixed this by adding an option argument to method after_step_result: def after_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, *tmp) record_result(status, :step_match => step_match, :keyword => keyword) end
I have no experience programming with Ruby and hence not sure if this is the correct way to fix, though it works for me now.
I am experiencing this as well.
The problem seems to be that an additional argument was added to visit_step_result method in This Commit
Since the cucumber-nagios gemspec file uses the open ended ">= 0.10.0" for it's cucumber dependency, the latest will get installed.
I just manually installed cucumber 1.1.2 and that seems to work.
Thank you varunwy !!!
I got the same problem after a «gem update» and you quick fix do the trick.
It seems the cucumber-nagios gem is a dead project :/, 3 months after you post the fix, the bug is stil here.
Can anyone confirm the suggestion of @bappelt:
I'm sorry i'm a newbie in the rubby world. 1) Did you suggests to downgrade Cucumber ? Not really a good way to solve the pb in my point of view. 2) «Make a pull request?» sorry , i don't understand :(
Yes I think @bappelt suggested 1.1.2 as the version so try using a Gem dep version of ~>1.1.2
I removed «cucumber-1.2.1» and «gherkin-2.11.2» (dependency). so that is installed (gem list) : cucumber (1.1.9, 1.1.3) cucumber-nagios (0.9.2)
I removed the hack of Varunwy and it works : CUCUMBER OK - Critical: 0, Warning: 0, 8 okay | passed=8; failed=0; nosteps=0; total=8; time=12
Indeed it seems to be dead, @benoiteolas .
Please see pull request #88 as a potential solution. @hedgehog would you be interested in this? It is along the lines of @bappelt's suggestion and works for me.
Closed by #88
Thanks @hedgehog!
I executed the below steps:
The file 'features/google.com/home.feature' contains:
feature: google.co.in It should be up
Scenario: Visiting home page When I go to "http://www.google.co.in" Then the request should succeed
"cucumber-nagios features/google.com/home.feature"
it prints the following error:
wrong number of arguments (8 for 7) (ArgumentError)
/usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:173:in
after_step_result' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:173:in
send' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:173:insend_to_all' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:171:in
each' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:171:insend_to_all' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:164:in
broadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:104:invisit_step_result' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/step_invocation.rb:43:in
visit_step_result' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/step_invocation.rb:39:inaccept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:99:in
visit_step' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:163:inbroadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:98:in
visit_step' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/step_collection.rb:15:inaccept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/step_collection.rb:14:in
each' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/step_collection.rb:14:inaccept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:93:in
visit_steps' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:163:inbroadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:92:in
visit_steps' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/scenario.rb:55:inaccept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:80:in
with_hooks' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:96:inbefore_and_after' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:79:in
with_hooks' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime/support_code.rb:120:incall' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime/support_code.rb:120:in
around' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/language_support/language_methods.rb:9:inaround' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/language_support/language_methods.rb:91:in
call' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/language_support/language_methods.rb:91:inexecute_around' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/language_support/language_methods.rb:8:in
around' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime/support_code.rb:119:inaround' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime/support_code.rb:117:in
call' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime/support_code.rb:117:inaround' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:91:in
around' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:78:inwith_hooks' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/scenario.rb:53:in
accept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/scenario.rb:108:inwith_visitor' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/scenario.rb:47:in
accept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:51:invisit_feature_element' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:163:in
broadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:50:invisit_feature_element' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/feature.rb:43:in
accept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/feature.rb:42:ineach' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/feature.rb:42:in
accept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:20:invisit_feature' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:163:in
broadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:19:invisit_feature' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/features.rb:29:in
accept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/features.rb:17:ineach' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/features.rb:17:in
each' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/features.rb:28:inaccept' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:14:in
visit_features' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:163:inbroadcast' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/ast/tree_walker.rb:13:in
visit_features' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/runtime.rb:46:inrun!' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/cli/main.rb:43:in
execute!' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/../lib/cucumber/cli/main.rb:20:inexecute' /usr/lib/ruby/gems/1.8/gems/cucumber-1.2.1/bin/cucumber:14 /usr/bin/cucumber:23:in
load' /usr/bin/cucumber:23What can I do to make it work? Is the project in a stable state and well tested?