当试图运行rspec时,我得到“未初始化的常量ActiveModel”
当我运行rspec spec
我得到以下内容:
/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions/active_record/base.rb:26:in`':ininitialized constant ActiveModel(NameError ) 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions.rb:1:in`requiren' 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions.rb:1:in` 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails.rb:8:in,requirement 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails.rb:8:in` 来自/Users/noahc/Dropbox/perfect_setup/spec/spec_helper.rb:4:in`requirement' 来自/Users/noahc/Dropbox/perfect_setup/spec/spec_helper.rb:4:in`' 来自/Users/noahc/Dropbox/perfect_setup/spec/controllers/pages_controller_spec.rb:1:in`requirent' 来自/Users/noahc/Dropbox/perfect_setup/spec/controllers/pages_controller_spec.rb:1:in` 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in"load' 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in"load_spec_files中的块' 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in`map' 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in,load_spec_files' 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/command_line.rb:18:in“run” 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:80:in“run_in_process” 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:69:in“run” 来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:10:in,clock in autorun'
我的spec_helper.rb看起来像这样:
ENV["RAILS_ENV"] ||= 'test' require 'spec_helper' require 'rspec/rails' require 'rspec/autorun' require 'spork' Spork.prefork do ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../../config/environment', __FILE__) require 'rspec/rails' RSpec.configure do |config| config.mock_with :rspec config.fixture_path = "#{Rails.root}/spec/fixtures" config.use_transactional_fixtures = true ActiveSupport::Dependencies.clear end end Spork.each_run do load "#{Rails.root}/config/routes.rb" Dir["#{Rails.root}/app/**/*.rb"].each {|f| load f} end Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} RSpec.configure do |config| config.mock_with :rspec config.fixture_path = "#{::Rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.infer_base_class_for_anonymous_controllers = false end Dir[Rails.root.join('spec/support/**/*.rb')].each{|f| require f}
如果我删除了我的pages_controller_spec文件,错误就会消失。 但我没有规格可以运行。
当我有一个像这样简单的东西时,错误会返回:
require 'spec_helper' describe PagesController do it "should do something..." end
此外,如果我添加任何测试,无论我在哪里得到相同的错误。
有关其他事情的任何线索,我可以试试吗?
你为什么要运行rspec spec
? 典型的运行方式是rake spec
。
尝试bundle exec rspec spec
或bundle exec rake spec
。
如果这不起作用,请尝试查看环境的其余部分是否有问题 – 尝试bundle exec rails console
和bundle exec rails server
要检查的另一件事是,项目文件中的.rspec有什么奇怪的东西,或〜/ .rspec ?
在调试相同症状时发现此线程。 这是错误的另一个原因:我跑了
rspec --init
但未能跑
rails generate rspec:install
做后者解决了这个问题。
在我的情况下
gem "spork-rails", "~> 4.0.0"
在./Gemfile
中丢失了。