0

それはすべて機能していますが、ゆっくりです。

Spork が機能していることはわかっていrspec spec/ます。これは、2 秒以内に応答が生成されるためです。Autotest が機能していることもわかっています。コントローラーのコードを変更すると、最終的には適切な Growl 通知が生成されるからです。問題は、Autotest応答に時間がかかりすぎることです: 約 16 秒。何が問題なのかを理解するのを手伝ってください。

Rails は初めてで、Michael Hartl の Rails 3 チュートリアルに従っています。

Platform:   Mac OS X 10.5.8
            Xcode 3.1.4
Ruby:       v. 1.9.2 p180  (with RVM)
Rails:      v. 3.0.9

bundle exec spork価値のあるものとして、Bundler を使用して Autotest と Spork をインストールし、 and を使用して (それぞれのターミナル ウィンドウ タブの下で) それらを呼び出しますbundle exec autotestspork("bundle exec" なしで) も正常に実行されますが、autotest("bundle exec" なしで) "command not found" エラー メッセージが生成されます。

私のプロジェクトの Gemfile (Hartl のチュートリアル ブックとビデオから引用):

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

私のプロジェクトの .autotest ファイル (これも 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

何が起こるのですか:

controller.rb ファイル (または controller_spec.rb ファイル) の 1 つに変更を保存すると、autotest ターミナル タブでアクティビティが発生するまでに約 8 秒かかります。その後にいくつかの空行が続きます。約 7 秒後、autotest タブに次のメッセージが表示されます。

/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'

その後すぐに spork のターミナル タブでのアクティビティが続き、すべてのターミナル ウィンドウとうなる通知でテストの期待される結果が表示されます。だから、すべてがうまくいっています。ゆっくりと!autotest の応答から最初の 15 秒をカットする方法についての提案をお待ちしています。

2011 年 8 月 7 日

4

1 に答える 1

1

プロジェクトのルートにある .rspec ファイルに --drb を追加してみてください: http://maxjustus.tumblr.com/post/1322305832/rspec-2-rails-3-autotest-and-spork

于 2011-09-21T00:38:49.550 に答える