Autotest responds slowly with Spork and Rspec under Rails 3.0.9
It's all working, but slowly.
I know that Spork is working, because rspec spec/ produces a response in under two seconds, and I know Autotest is working, since it eventually produces an appropriate Growl notification when I make a change to the controller code. The problem is that Autotest is taking too long to respond: about 16 seconds. Please help me figure out what's going wrong.
I'm new to Rails, and following Michael Hartl's Rails 3 Tutorial.
Platform: Mac OS X 10.5.8
Xcode 3.1.4
Ruby: v. 1.9.2 p180 (with RVM)
Rails: v. 3.0.9
For what it's worth, I installed Autotest and Spork using Bundler, and call them (each under its own terminal window tab) using bundle exec spork and bundle exec autotest. spork (without the "bundle exec") also runs fine, but autotest (without the "bundle exec") produces a "command not found开发者_开发技巧" error message.
My project's Gemfile (drawn from Hartl's tutorial book and video):
source 'http://rubygems.org'
gem 'rails', '3.0.9'
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'will_paginate', '3.0.pre2'
group :development do
gem 'rspec-rails', '2.6.1'
gem 'annotate', '2.4.0'
gem 'faker', '0.3.1'
end
group :test do
gem 'rspec-rails', '2.6.1'
gem 'webrat', '0.7.1'
gem 'spork', '0.9.0.rc8'
gem 'autotest', '4.4.6'
gem 'autotest-rails-pure', '4.1.2'
gem 'autotest-fsevent', '0.2.4'
gem 'autotest-growl', '0.2.9'
gem 'factory_girl_rails', '1.0'
end
My project's .autotest file (also drawn from Hartl):
require 'autotest/growl'
require 'autotest/fsevent'
Autotest.add_hook :initialize do |autotest|
autotest.add_mapping(/^spec\/requests\/.*_spec\.rb$/) do
autotest.files_matching(/^spec\/requests\/.*_spec\.rb$/)
end
end
What happens:
When I save a change to one of my controller.rb files (or controller_spec.rb files), about 8 seconds elapse before there is any activity on the autotest terminal tab - which, at this point, is simply a row of hyphens preceded and followed by some empty lines. About 7 seconds later, the autotest tab displays the following message:
/Users/jlee/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -rrubygems -S /Users/jlee/rails_projects/sample_app_jbl/autotest/ruby/1.9.1/gems/rspec-core-2.6.4/bin/rspec --tty '/Users/jlee/rails_projects/sample_app_jbl/spec/controllers/pages_controller_spec.rb'
Which is followed almost immediately by activity on spork's terminal tab, and the expected results of the test in all terminal windows and in a growl notification. So it's all working, just S-L-O-W-L-Y! I'm eager for suggestions about how to cut the first fifteen seconds out of autotest's response.
8/7/2011
Try adding --drb to the .rspec file at the root of your project: http://maxjustus.tumblr.com/post/1322305832/rspec-2-rails-3-autotest-and-spork
加载中,请稍侯......
精彩评论