Forum: RSpec Problem with spec_helper

Posted by Daniel Lidström (Guest)
on 2010-08-26 15:13
(Received via mailing list)
Hello,

I am a complete newbie to both ruby and rspec. I am following the
steps in the railstutorial.org book to learn ruby on rails. The
current step involves setting up rspec for the tests, and this is
where I am stuck. Here's what I am doing:


$ cat spec/controllers/pages_controller_spec.rb
require 'spec_helper'

describe PagesController do

  describe "GET 'home'" do
    it "should be successful" do
      get 'home'
      response.should be_success
    end
  end

  describe "GET 'contact'" do
    it "should be successful" do
      get 'contact'
      response.should be_success
    end
  end

end

$ rake --trace spec
(in /home/daniel/programming/rails_projects/sample_app)
** Invoke spec (first_time)
** Invoke db:test:prepare (first_time)
** Invoke db:abort_if_pending_migrations (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:abort_if_pending_migrations
** Execute db:test:prepare
** Invoke db:test:load (first_time)
** Invoke db:test:purge (first_time)
** Invoke environment
** Execute db:test:purge
** Execute db:test:load
** Invoke db:schema:load (first_time)
** Invoke environment
** Execute db:schema:load
** Execute spec
./spec/controllers/pages_controller_spec.rb:1:in `require': no such
file to load -- spec_helper (LoadError)
  from ./spec/controllers/pages_controller_spec.rb:1
rake aborted!
bundle exec  /usr/bin/ruby1.8  -Ilib -Ispec "./spec/controllers/
pages_controller_spec.rb"  failed
/usr/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.19/lib/rspec/core/
rake_task.rb:72
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in `verbose'
/usr/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.19/lib/rspec/core/
rake_task.rb:65:in `send'
/usr/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.19/lib/rspec/core/
rake_task.rb:65
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in
`invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in
`invoke_with_call_chain'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in
`invoke_task'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in
`standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

So it seems spec_helper is not being found, am I right? A search of my
system (Ubuntu 10.04) shows this file in several places:

$ sudo find / -name spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-expectations-2.0.0.beta.18/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-mocks-2.0.0.beta.19/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/thor-0.14.0/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/launchy-0.3.7/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-expectations-2.0.0.beta.19/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.19/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/treetop-1.4.8/spec/runtime/
interval_skip_list/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/treetop-1.4.8/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-1.3.2/generators/rspec/
templates/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-1.3.2/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.18/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.1/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.1/spec/integration/merb/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.1/spec/integration/mechanize/
spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/arel-0.4.0/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-mocks-2.0.0.beta.18/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rack-test-0.5.4/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-2.0.0.beta.18/lib/generators/
rspec/install/templates/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-2.0.0.beta.18/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-2.0.0.beta.19/lib/generators/
rspec/install/templates/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/rspec-rails-2.0.0.beta.19/spec/
spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.2.beta.1/spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.2.beta.1/spec/integration/merb/
spec/spec_helper.rb
/usr/lib/ruby/gems/1.8/gems/webrat-0.7.2.beta.1/spec/integration/
mechanize/spec/spec_helper.rb

My Gemfile looks like this:


$ cat Gemfile
source 'http://rubygems.org'

gem 'rails', '3.0.0.rc'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3-ruby', :require => 'sqlite3'

group :development, :test do
  gem 'rspec-rails', '>= 2.0.0.beta.19'
end


I have done a few web searches but I could not find anything to help
me. Any help would be greatly appreciated, I am very anxious to get
started with this wonderful environment! Let me know if there's any
additional information needed to pinpoint the problem.

Regards,

Daniel 
LidströmStockholm, Sweden
Posted by David Chelimsky (Guest)
on 2010-08-26 15:21
(Received via mailing list)
On Aug 22, 2010, at 2:10 PM, Daniel Lidström wrote:

> 
>    it "should be successful" do
> ** Invoke db:test:prepare (first_time)
> ** Invoke db:schema:load (first_time)
> rake_task.rb:72
> `invoke_with_call_chain'
> `standard_exception_handling'
> system (Ubuntu 10.04) shows this file in several places:
> spec_helper.rb
> /usr/lib/ruby/gems/1.8/gems/webrat-0.7.1/spec/spec_helper.rb
> /usr/lib/ruby/gems/1.8/gems/rspec-rails-2.0.0.beta.18/spec/
> 
> 
> additional information needed to pinpoint the problem.
> 
> Regards,
> 
> Daniel Lidström
> Stockholm, Sweden

RSpec adds ./spec to the load path so it should find 
./spec/spec_helper.rb when you say require 'spec_helper'. I've got 
co-workers who are using ubuntu and this problem hasn't come up, so I'm 
a bit mystified. Anybody else suffering this problem?
Posted by Brennon Bortz (Guest)
on 2010-08-26 15:32
(Received via mailing list)
Would not having run "rails generate rspec:install" cause this problem?

On 26 Aug 2010, at 14:21, David Chelimsky wrote:

> On Aug 22, 2010, at 2:10 PM, Daniel Lidström wrote:
> 
>> <snip />
>> So it seems spec_helper is not being found, am I right? A search of my
>> system (Ubuntu 10.04) shows this file in several places:
>> <snip />
> 
> RSpec adds ./spec to the load path so it should find ./spec/spec_helper.rb when you say require 'spec_helper'. I've got co-workers who are using ubuntu and this problem hasn't come up, so I'm a bit mystified. Anybody else suffering this problem?
> <snip />

Brennon Bortz
Software Researcher
Dundalk Institute of Technology
brennon.bortz@casala.ie
Ph.D. Researcher & Composer - Sonic Arts Research Centre
Queen's University, Belfast
brennon@brennonbortz.com / bbortz01@qub.ac.uk
Posted by Daniel Lidström (Guest)
on 2010-08-26 22:26
(Received via mailing list)
On 26 Aug, 15:25, Brennon Bortz <bren...@brennonbortz.com> wrote:
>
> > RSpec adds ./spec to the load path so it should find ./spec/spec_helper.rb when you say require 'spec_helper'. I've got co-workers who are using ubuntu and this problem hasn't come up, so I'm a bit mystified. Anybody else suffering this problem?
> > <snip />
>

That did the trick Brennon:
daniel@ubuntu/home/daniel/programming/rails_projects/sample_app$ rails
generate rspec:install
      create  .rspec
       exist  spec
      create  spec/spec_helper.rb
      create  autotest
      create  autotest/discover.rb
daniel@ubuntu/home/daniel/programming/rails_projects/sample_app$ ls
spec/spec_helper.rb
spec/spec_helper.rb

I missed this step in the railstutorial.org :-(

Anyway, thanks a lot!

Daniel
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.