title: rspec testing throws Uninitialized constant Rails (NameError)
body: <p>Please forgive any shortcomings in this (my first-ever) post on StackOverflow. I'm brand new to Ruby on Rails. I'm following the <a href="http://ruby.railstutorial.org/" rel="noreferrer">Rails Tutorial</a>. I have spent many unsuccessful hours consulting other threads discussing the same Name Error that I'm raising in this question. </p>
  
  <p>Any attempt of mine to run an rspec test like so: $bundle exec rspec spec/models/user_spec.rb
  throws the now infamous error: `': uninitialized constant Rails (NameError)</p>
  
  <p>Let me know if there's any more information I should provide you in order to get the ball rolling. </p>
  
  <p>Here's my gemfile:</p>
  
  <pre><code>source 'https://rubygems.org'  
  ruby '2.0.0'  
      #ruby-gemset=railstutorial_rails_4_0  
  
  gem 'rails', '4.0.0'  
  gem 'bootstrap-sass', '2.3.2.0'  
  gem 'bcrypt-ruby', '3.0.1'  
  gem 'faker', '1.1.2'  
  gem 'will_paginate', '3.0.4'  
  gem 'bootstrap-will_paginate', '0.0.9'  
  
  group :development, :test do
    gem 'sqlite3', '1.3.8'  
    gem 'rspec-rails', '2.13.1'  
    # The following optional lines are part of the advanced setup.  
    # gem 'guard-rspec', '2.5.0'  
    # gem 'spork-rails', '4.0.0'  
    # gem 'guard-spork', '1.5.0'  
    # gem 'childprocess', '0.3.6'  
  end  
  
  group :test do  
    gem 'selenium-webdriver', '2.35.1'  
    gem 'capybara', '2.1.0'  
    gem 'factory_girl_rails', '4.2.0'  
    gem 'cucumber-rails', '1.4.0', :require =&gt; false  
    gem 'database_cleaner', github: 'bmabey/database_cleaner'  
  
    # Uncomment these lines on Linux.  
    # gem 'libnotify', '0.8.0'  
  
    # Uncomment these lines on Windows.  
    # gem 'rb-notifu', '0.0.4'  
    # gem 'win32console', '1.3.2'  
    # gem 'wdm', '0.1.0'  
  end  
  
  gem 'sass-rails', '4.0.1'  
  gem 'uglifier', '2.1.1'  
  gem 'coffee-rails', '4.0.1'  
  gem 'jquery-rails', '3.0.4'  
  gem 'turbolinks', '1.1.1'  
  gem 'jbuilder', '1.0.2'  
  
  group :doc do  
    gem 'sdoc', '0.3.20', require: false  
  end  
  
  group :production do  
    gem 'pg', '0.15.1'  
    gem 'rails_12factor', '0.0.2'  
  end  
  </code></pre>
  
  <p>Here is my spec/models/user_spec.rb file:  </p>
  
  <pre><code>require 'spec_helper'  
  
  describe User do
    pending "add some examples to (or delete) #{__FILE__}"
  end
  </code></pre>
  
  <p>Here is my app/models/user.rb file:<br>
      class User &lt; ActiveRecord::Base
      end</p>
  
  <p>Here is my spec_helper.rb file:</p>
  
  <pre><code># This file is copied to spec/ when you run 'rails generate rspec:install'
  ENV["RAILS_ENV"] ||= 'test'
  Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
  
  require 'test/unit'
  require 'spec_helper'
  require File.expand_path("../../config/environment", __FILE__)
  require 'rspec/rails'
  require 'rspec/autorun'
  
  # Requires supporting ruby files with custom matchers and macros, etc,
  # in spec/support/ and its subdirectories.
  Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
  
  # Checks for pending migrations before tests are run.
  # If you are not using ActiveRecord, you can remove this line.
  ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
  
  RSpec.configure do |config|
    # ## Mock Framework
    #
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
    #
    # config.mock_with :mocha
    # config.mock_with :flexmock
    # config.mock_with :rr
  
    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
  
    # If you're not using ActiveRecord, or you'd prefer not to run each of your
    # examples within a transaction, remove the following line or assign false
    # instead of true.
    config.use_transactional_fixtures = true
  
    # If true, the base class of anonymous controllers will be inferred
    # automatically. This will be the default behavior in future versions of
    # rspec-rails.
    config.infer_base_class_for_anonymous_controllers = false
  
    # Run specs in random order to surface order dependencies. If you find an
    # order dependency and want to debug it, you can fix the order by providing
    # the seed, which is printed after each run.
    #     --seed 1234
    config.order = "random"
    config.include Capybara::DSL
  end
  </code></pre>
  
  <p>I have definitely run bundle install. I can also confirm that I've already created the database and run the migration (db/test.sqlite3 already exists)</p>