尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel"; [英] When trying to run rspec, I get "uninitialized constant ActiveModel"

查看:31
本文介绍了尝试运行 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 `': 未初始化的常量 ActiveModel (NameError)来自/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions.rb:1:in `require'来自/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 `require'来自/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 `require'来自/Users/noahc/Dropbox/perfect_setup/spec/spec_helper.rb:4:in `'来自/Users/noahc/Dropbox/perfect_setup/spec/controllers/pages_controller_spec.rb:1:in `require'来自/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 `block 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 `block in autorun'

我的 spec_helper.rb 看起来像这样:

ENV["RAILS_ENV"] ||= 'test'需要'spec_helper'需要'rspec/rails'需要'rspec/autorun'需要'spork'Spork.prefork 做ENV['RAILS_ENV'] ||= '测试'需要 File.expand_path('../../config/environment', __FILE__)需要'rspec/rails'RSpec.configure 做 |config|config.mock_with :rspecconfig.fixture_path = "#{Rails.root}/spec/fixtures"config.use_transactional_fixtures = trueActiveSupport::Dependencies.clear结尾结尾Spork.each_run 做加载#{Rails.root}/config/routes.rb"目录["#{Rails.root}/app/**/*.rb"].each {|f|负载 f}结尾目录[Rails.root.join("spec/support/**/*.rb")].each {|f|需要 f}RSpec.configure 做 |config|config.mock_with :rspecconfig.fixture_path = "#{::Rails.root}/spec/fixtures"config.use_transactional_fixtures = trueconfig.infer_base_class_for_anonymous_controllers = false结尾目录[Rails.root.join('spec/support/**/*.rb')].each{|f|需要 f}

如果我删除 pages_controller_spec 文件,错误就会消失.但我要运行的规格为零.

当我有这样简单的事情时,错误会返回:

需要'spec_helper'描述 PagesController 做它应该做点什么……"结尾

此外,如果我添加任何测试,无论在哪里遇到相同的错误.

关于我可以尝试的其他事情的任何线索?

解决方案

你为什么要运行 rspec spec?典型的运行是rake spec.

尝试bundle exec rspec specbundle exec rake spec.

如果这不起作用,请尝试查看您的环境的其余部分是否有问题——尝试 bundle exec rails consolebundle exec rails server

还要检查的另一件事是,您的项目文件中的 .rspec~/.rspec 中是否有任何异常?

When I run rspec spec I get the following:

/usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions/active_record/base.rb:26:in `': uninitialized constant ActiveModel (NameError)
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions.rb:1:in `require'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails/extensions.rb:1:in `'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails.rb:8:in `require'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-rails-2.7.0/lib/rspec/rails.rb:8:in `'
    from /Users/noahc/Dropbox/perfect_setup/spec/spec_helper.rb:4:in `require'
    from /Users/noahc/Dropbox/perfect_setup/spec/spec_helper.rb:4:in `'
    from /Users/noahc/Dropbox/perfect_setup/spec/controllers/pages_controller_spec.rb:1:in `require'
    from /Users/noahc/Dropbox/perfect_setup/spec/controllers/pages_controller_spec.rb:1:in `'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in `load'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in `block in load_spec_files'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in `map'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/configuration.rb:459:in `load_spec_files'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/command_line.rb:18:in `run'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:80:in `run_in_process'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:69:in `run'
    from /usr/local/lib/ruby/gems/1.9.1/gems/rspec-core-2.7.1/lib/rspec/core/runner.rb:10:in `block in autorun'

My spec_helper.rb looks like this:

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}

If I delete my pages_controller_spec file the errors go away. But I have zero specs to run.

The error returns when I have something even as simple as this:

require 'spec_helper'

describe PagesController do
  it "should do something..."
end

Also, if I add any tests no matter where I get the same error.

Any clues on other things I can try?

解决方案

Why are you running rspec spec? The typical thing to run is rake spec.

Try bundle exec rspec spec or bundle exec rake spec.

If that doesn't work, try to see if something is wrong with the rest of your environment -- try bundle exec rails console and bundle exec rails server

Another thing to check, is there anything odd in .rspec in your project file, or ~/.rspec?

这篇关于尝试运行 rspec 时,我得到“未初始化的常量 ActiveModel";的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆