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?m Stockholm, Sweden
On Aug 22, 2010, at 2:10 PM, Daniel Lidstr?m wrote:> 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?m > Stockholm, SwedenRSpec 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 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 at casala.ie Ph.D. Researcher & Composer - Sonic Arts Research Centre Queen''s University, Belfast brennon at brennonbortz.com / bbortz01 at qub.ac.uk -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100826/25f7c536/attachment.html>
On 26 Aug, 15:25, Brennon Bortz <bren... at brennonbortz.com> wrote:> 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 /> >That did the trick Brennon: daniel at 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 at 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