cucumber-ruby: Getting `undefined method 'unpack' for nil:NilClass` on ruby 2.2
Ruby 2.2-preview2 was released a couple weeks ago and I decided to add it to RSpec’s travis build matrix to make sure we’re all green on it (and, if not, to provide feedback to the ruby core team about any regressions we find). However, I’m running into an exception from cucumber when travis runs our cukes on ruby-2.2-preview2. (Actually, after looking at the full build logs, it looks like it’s using 2.2-preview1…I guess 2.2 in .travis.yml doesn’t yet run preview2).
Here’s an example of the failure:
https://travis-ci.org/rspec/rspec-expectations/jobs/43763060#L155
Here’s the full stack trace:
undefined method `unpack' for nil:NilClass (NoMethodError)
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step.rb:81:in `text_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `block in max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `map'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/has_steps.rb:53:in `max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/has_steps.rb:49:in `source_indent'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/background.rb:40:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:64:in `block in visit_background'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:63:in `visit_background'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/feature.rb:36:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:27:in `block in visit_feature'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:26:in `visit_feature'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:28:in `block in accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:17:in `each'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:17:in `each'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:27:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:21:in `block in visit_features'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:20:in `visit_features'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:49:in `run!'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/cli/main.rb:47:in `execute!'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/bin/cucumber:13:in `<top (required)>'
bin/cucumber:12:in `load'
bin/cucumber:12:in `<main>'
This might be a regression in ruby rather than a bug in cucumber, but I’m not in a good position to figure that out so I figured I’d report it here and let the cucumber team work that out 😃.
About this issue
- Original URL
- State: closed
- Created 10 years ago
- Comments: 15 (7 by maintainers)
Commits related to this issue
- Update Cucumber for Ruby 2.2.3 compatibility https://github.com/cucumber/cucumber-ruby/issues/781 — committed to matjack1/tracks by matjack1 9 years ago
- Update cucumber version Version 1.3.10 has problems running with Ruby 2.2.3 - `undefined method `unpack' for nil:NilClass (NoMethodError)` Updating the cucumber version fixes this error. See: https:... — committed to Crown-Commercial-Service/digitalmarketplace-functional-tests by TheDoubleK 9 years ago
- build: bump cucumber to 1.3.20 to support ruby2.2+ Cucumber 1.3.17 fails on ruby 2.2 or later: https://github.com/cucumber/cucumber-ruby/issues/781 Set a version specifier in Gemfile Do a conservati... — committed to wikimedia/mediawiki-extensions-PoolCounter by hashar 6 years ago
- Updating cucumber version in Gemfile.lock as test fails with older version cucumber with message '/usr/local/lib/ruby/gems/2.5.0/gems/cucumber-1.3.4/lib/cucumber/ast/step.rb:80: warning: circular argu... — committed to mukeshtiwari1987/cucumber-ruby-browserstack by mukeshtiwari1987 6 years ago
I just released 1.3.18 which has @tricknotes Ruby 2.2 support PR in it, so hopefully a quick
bundle update cucumbershould fix this for you all.Happy Christmas!=