auxesis / cucumber-nagios

Systems testing plugin for Nagios with Cucumber + Webrat + Mechanize + Net::SSH
http://cucumber-nagios.org/
MIT License
257 stars 43 forks source link

Wrong number of arguments error when using with cuken #85

Closed ghost closed 12 years ago

ghost commented 12 years ago

Hello,

I've run into an issue when trying to run cucumber-nagios on a project that uses cuken. I'm using Ruby 1.9.2-p290, with "gem install"ed cucumber-nagios and cuken. I receive the following error:

wrong number of arguments (8 for 7) (ArgumentError)

The offending method is the 'after_step_result' method on line 16 of lib/cucumber/formatter/nagios.rb

features/cuken_examples.feature

Feature: Cuken Examples

  Scenario: Make use of some of the cuken step definitions
    Given a SSH client user "eking"
    And a SSH client hostname "192.168.0.100"

features/support/env.rb

require 'cuken/all'

Output

eking@mint:~/Projects/my_project$ cucumber-nagios features/cuken_examples.feature 
wrong number of arguments (8 for 7) (ArgumentError)
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-nagios-0.9.2/lib/cucumber/formatter/nagios.rb:16:in `after_step_result'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:173:in `block in send_to_all'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:171:in `each'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:171:in `send_to_all'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:164:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:104:in `visit_step_result'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/step_invocation.rb:43:in `visit_step_result'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/step_invocation.rb:39:in `accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:99:in `block in visit_step'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:163:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:98:in `visit_step'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/step_collection.rb:15:in `block in accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/step_collection.rb:14:in `each'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/step_collection.rb:14:in `accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:93:in `block in visit_steps'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:163:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:92:in `visit_steps'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/scenario.rb:55:in `block (2 levels) in accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:80:in `block (2 levels) in with_hooks'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:96:in `before_and_after'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:79:in `block in with_hooks'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime/support_code.rb:120:in `call'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime/support_code.rb:120:in `block (3 levels) in around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/language_support/language_methods.rb:9:in `block in around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/language_support/language_methods.rb:91:in `call'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/language_support/language_methods.rb:91:in `execute_around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/language_support/language_methods.rb:8:in `around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime/support_code.rb:119:in `block (2 levels) in around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime/support_code.rb:117:in `call'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime/support_code.rb:117:in `around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:91:in `around'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:78:in `with_hooks'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/scenario.rb:53:in `block in accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/scenario.rb:108:in `with_visitor'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/scenario.rb:47:in `accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:51:in `block in visit_feature_element'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:163:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:50:in `visit_feature_element'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/feature.rb:43:in `block in accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/feature.rb:42:in `each'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/feature.rb:42:in `accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:20:in `block in visit_feature'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:163:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:19:in `visit_feature'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/features.rb:29:in `block in accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/features.rb:17:in `each'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/features.rb:17:in `each'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/features.rb:28:in `accept'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:14:in `block in visit_features'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:163:in `broadcast'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/ast/tree_walker.rb:13:in `visit_features'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/runtime.rb:46:in `run!'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/cli/main.rb:43:in `execute!'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/lib/cucumber/cli/main.rb:20:in `execute'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/gems/cucumber-1.2.0/bin/cucumber:14:in `'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/bin/cucumber:19:in `load'
/home/eking/.rvm/gems/ruby-1.9.2-p290@cuken/bin/cucumber:19:in `
'
hedgehog commented 12 years ago

Theses gems weren't intended to be used together. In fact cuken includes some/much of nagios. Unfortunately cuken does not yet full encompass all of cucumber-nagios... I suppose the correct way to resolve this bug is to added into cuken the specific functionality that is in cucumber-nagios that you are trying to use. Or it could be that it is already possible to do so.... Care to elaborate on what it is you are trying to do?

ghost commented 12 years ago

Sure - I was really just looking at the best way to use SSH with cucumber and obviously I came across cuken and cucumber-nagios. If the gems weren't supposed to be used together then that's fine, I'm quite happy to use one or the other. 

I didn't really have any specific functionality in mind, I was just taking a look at what was possible and ran into this issue. I've only tested when requiring 'cuken\all', so I'll probably try again with just 'cuken\ssh'.

For now I've got past it by simply adding a random extra parameter to the method that's throwing the error. 

Cheers

hedgehog commented 12 years ago

OK so I'll close this. Feel free to re-open if you think there is something that should be fixed in cucumber-nagios.