【发布时间】:2014-05-01 13:57:23
【问题描述】:
我是 ruby 的新手,并按照 Cheezy 在他的《黄瓜和奶酪》一书中的例子进行学习。
我的 gemfile 看起来像这样:
source 'https://rubygems.org'
gem 'cucumber'
gem 'rspec'
gem 'page-object'
gem 'pry-debugger'
gem 'faker'
gem 'data_magic'
gem 'debugger', '1.6.6'
gem 'require_all'
gem 'activerecord', '3.2.1'
gem 'factory_girl'
gem 'database_cleaner'
gem 'sqlite3'
我有一个名为 database.rb 的文件(受支持),其中包含:
require 'active_record'
require 'database_cleaner'
require 'factory_girl'
require 'sqlite3'
ActiveRecord::Base.establish_connection(
:adapter => 'sqlite3',
:database => '../puppies/db/development.sqlite3')
我的 env.rb 文件包含:
require 'rspec-expectations'
require 'page-object'
require 'page-object/page_factory'
require 'watir-webdriver'
require 'data_magic'
require 'require_all'
require_all File.dirname(__FILE__) + '/pages'
PageObject::PageFactory.routes= {
:default => [[HomePage, :view_details_for_puppy],
[DetailsPage, :add_to_cart],
[ShoppingCartPage, :complete_adoption],
[CheckoutPage, :checkout]]}
World(PageObject::PageFactory)
我的课程页面:
用户.rb
class User < ActiveRecord::Base
end
订单.rb
class Order < ActiveRecord::Base
has_many :adoption
end
用户.rb
class User < ActiveRecord::Base
has_many :adoption
end
收养.rb
class Adoption < ActiveRecord::Base
belongs_to :order
belongs_to :puppy
end
尝试运行第一个 CRUD 场景时出现此错误:
test_puppies_one djLaX805$ bundle exec cucumber -t @crud1
uninitialized constant ActiveRecord (NameError)
/Users/djLaX805/RubymineProjects/Learning Ruby on a MAC/test_puppies_one/features/support/pages/database/adoption.rb:1:in `<top (required)>'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/require_all-1.3.2/lib/require_all.rb:109:in `require'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/require_all-1.3.2/lib/require_all.rb:109:in `block in require_all'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/require_all-1.3.2/lib/require_all.rb:107:in `each'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/require_all-1.3.2/lib/require_all.rb:107:in `require_all'
/Users/djLaX805/RubymineProjects/Learning Ruby on a MAC/test_puppies_one/features/support/env.rb:8:in `<top (required)>'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/rb_support/rb_language.rb:95:in `load'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/rb_support/rb_language.rb:95:in `load_code_file'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime/support_code.rb:180:in `load_file'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime/support_code.rb:82:in `each'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime/support_code.rb:82:in `load_files!'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime.rb:184:in `load_step_definitions'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/runtime.rb:42:in `run!'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/lib/cucumber/cli/main.rb:47:in `execute!'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/gems/cucumber-1.3.14/bin/cucumber:13:in `<top (required)>'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/bin/cucumber:23:in `load'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/bin/cucumber:23:in `<main>'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `eval'
/Users/djLaX805/.rvm/gems/ruby-2.1.1/bin/ruby_executable_hooks:15:in `<main>'
有什么想法吗?我完全按照他的方式跟着他的书。
【问题讨论】:
-
您可能还想在
adoption.rb的顶部添加require 'active_record'。 -
你能分享
features/support/pages/database/adoption.rb文件中的代码吗?在问题中更新它。 -
页面已被标记。这就是这些文件中的所有代码。
标签: ruby-on-rails ruby activerecord gem rubygems