Problem with spec_helper

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

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?

Would not having run “rails generate rspec:install” cause this problem?

On 26 Aug 2010, at 14:21, David C. wrote:

On Aug 22, 2010, at 2:10 PM, Daniel Lidström wrote:

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:

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?

Brennon B.
Software Researcher
Dundalk Institute of Technology
[email protected]
Ph.D. Researcher & Composer - Sonic Arts Research Centre
Queen’s University, Belfast
[email protected] / [email protected]

On 26 Aug, 15:25, Brennon B. [email protected] 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?

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 :frowning:

Anyway, thanks a lot!

Daniel