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 2010-08-26 15:13
on 2010-08-26 15:21
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?
on 2010-08-26 15:32
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
on 2010-08-26 22:26
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
Log in with Google account | Log in with Yahoo account
No account? Register here.