Shelley Suhling
Shelley Suhling

Reputation: 63

Capybara error: undefined method `join' for nil:NilClass

After installing Capybara, I get the error:

NoMethodError: undefined method `join' for nil:NilClass

whenever I try to run rspec.

I've been trying to add and remove different requirements, but nothing seems to work. Does anyone have any idea what's happening?


spec_helper.rb

  RSpec.configure do |config|

  config.expect_with :rspec do |expectations|
    expectations.include_chain_clauses_in_custom_matcher_descriptions = true
  end


  config.mock_with :rspec do |mocks|
    mocks.verify_partial_doubles = true
  end


  config.filter_run :focus
  config.run_all_when_everything_filtered = true

  config.disable_monkey_patching!
  config.warnings = true
  if config.files_to_run.one?
    config.default_formatter = 'doc'
  end

  config.profile_examples = 10

  config.order = :random
  Kernel.srand config.seed

  config.include FactoryGirl::Syntax::Methods

  #FactoryGirl.definition_file_paths = [File.expand_path('../factories', __FILE__)]
  config.warnings = false

  config.infer_spec_type_from_file_location!
  config.include SpecTestHelper, :type => :controller


  config.include Capybara::DSL


end

Capybara.default_driver = :selenium

rails_helper.rb

ENV['RAILS_ENV'] ||= 'test'
require 'spec_helper'
require File.expand_path('../../config/environment', __FILE__)
require 'rspec/rails'


RSpec.configure do |config|
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
  config.infer_spec_type_from_file_location!
end

And for all of my spec files I include:

require 'spec_helper'

Please help!


Update:

Here is the backtrace:

NoMethodError: undefined method `join' for nil:NilClass
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/capybara-2.4.4/lib/capybara/rails.rb:15
               require at org/jruby/RubyKernel.java:1071
               require at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251
       load_dependency at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236
               require at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-rails-3.2.1/lib/rspec/rails/vendor/capybara.rb:1
               require at org/jruby/RubyKernel.java:1071
               require at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251
       load_dependency at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236
               require at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-rails-3.2.1/lib/rspec/rails/vendor/capybara.rb:7
               require at org/jruby/RubyKernel.java:1071
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-rails-3.2.1/lib/rspec/rails.rb:1
               require at org/jruby/RubyKernel.java:1071
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-rails-3.2.1/lib/rspec/rails.rb:13
                  each at org/jruby/RubyArray.java:1613
                (root) at /Users/ssuhli200/Downloads/cimport/spec/spec_helper.rb:1
                (root) at /Users/ssuhli200/Downloads/cimport/spec/spec_helper.rb:5
                  each at org/jruby/RubyArray.java:1613
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1
             requires= at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181
             requires= at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181
  process_options_into at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:110
  process_options_into at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:109
             configure at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:22
                 setup at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:96
                  load at org/jruby/RubyKernel.java:1087
                   run at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85
                  eval at org/jruby/RubyKernel.java:1107
                (root) at /Users/ssuhli200/.rvm/gems/jruby-1.7.18@cimport/bin/jruby_executable_hooks:15

Upvotes: 0

Views: 1498

Answers (1)

tpbowden
tpbowden

Reputation: 2090

You need to require rails_helper not spec_helper. The problem is that Capybara is calling Rails.root.join before your Rails app has fired up (which is taken care of in your Rails helper).

Upvotes: 1

Related Questions