GBCamb
GBCamb

Reputation: 11

Syntax error when attempting to run tests with page-object included

I've recently picked up the page-object gem, but I've been unable to get my tests (based on Cucumber/Selenium) to run when this gem is included.

According to gem list, I have the gem installed:

page-object (0.9.1)

My env.rb file includes:

require 'page-object'

However when I attempt to run my tests, I receive the following error:

/Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:32: syntax error, unexpected '=', expecting '|' ...dget_tag do |name, identifier={:index => 0}, &block| ^ /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:32: syntax error, unexpected ',', expecting kEND ...ame, identifier={:index => 0}, &block| ^ /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object/widgets.rb:122: syntax error, unexpected kEND, expecting $end (SyntaxError) /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:inrequire' /Library/Ruby/Gems/1.8/gems/page-object-0.9.1/lib/page-object.rb:10 />Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:116:in gem_original_require' />Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:116:inrequire' /Users/garethbragg/dev/trade-finder/test/cucumber/features/support/env.rb:6 /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:in load' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:inload_code_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:180:in load_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:83:inload_files!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:in each' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:inload_files!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:183:in load_step_definitions' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:42:inrun!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/cli/main.rb:47:in execute!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/cucumber:13 /usr/bin/cucumber:23:inload' /usr/bin/cucumber:23

If I include PageObject in any of my classes, I receive the following:

uninitialized constant Home::PageObject (NameError) ./lib/Home.rb:4 /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:in gem_original_require' /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_require.rb:51:inrequire' /Users/garethbragg/dev/trade-finder/test/cucumber/features/support/env.rb:2 /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:in load' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/rb_support/rb_language.rb:122:inload_code_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:180:in load_file' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:83:inload_files!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:in each' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime/support_code.rb:82:inload_files!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:183:in load_step_definitions' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/runtime.rb:42:inrun!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/../lib/cucumber/cli/main.rb:47:in execute!' /Library/Ruby/Gems/1.8/gems/cucumber-1.3.5/bin/cucumber:13 /usr/bin/cucumber:23:inload' /usr/bin/cucumber:23

Any suggestions would be gratefully appreciated.

Upvotes: 1

Views: 309

Answers (2)

Tyler MacMillan
Tyler MacMillan

Reputation: 592

I had this same problem earlier today. I fixed it by (as Cheezy suggested), updating my ruby version. (1.9.3).

It is also worth noting that I updated rubygems, deleted my Gemfile.lock, and ran another bundle install. (I'm also using rvm for my ruby versions)

Upvotes: 0

Cheezy
Cheezy

Reputation: 789

I believe the error is due to your using ruby 1.8. Can you give it a try with 1.9 or higher?

Upvotes: 1

Related Questions