2011-07-16 4 views
5

私はBDDが初めてです。私がキュウリを使ってみるたびに、私はかなり遅いと感じます。私は2つの異なるマシンでRails 3.0.9 & 3.1を試しました。マシンの1つは、2GBのRAMを搭載した古いIBM ThinkPadラップトップです。もう1台は4GBのRAMを搭載したPCです(必要な場合は正確な仕様を得ることができます)。どちらもFedora 14を実行します。テストを実行するとキュウリが非常に遅くなります[異なる2台のFedoraマシンでテスト済み]

キュウリのない新しいアプリケーションであっても、キュウバーは分です。ここでは、それがどのようになるです:

対照的に
$ cucumber 
Using the default profile... 
--- about 2 minutes delay---- and then it says: 
0 scenarios 
0 steps 
0m0.000s 

、RSpecのは一瞬です:

rspec 
No examples found. 

Finished in 0.00005 seconds 
0 examples, 0 failures 

キュウリはそれが0m0.000sを取ったと言いながら、現実には約2分かかりました。そして、RSpecは瞬間的で、正確に時刻を表示します:0.00005秒。

これは正常ですか?プロセスをより速くするために、いくつかの追加のGemや設定が必要ですか?

アップデート:ここでは、より多くのデータです:キュウリと

まず:

$time cucumber 
Using the default profile... 
0 scenarios 
0 steps 
0m0.000s 

real 0m53.489s 
user 0m37.051s 
sys 0m1.973s 

、その後、RSpecの

$ time rspec spec/ 
No examples found. 


Finished in 0.00005 seconds 
0 examples, 0 failures 

real 0m1.925s 
user 0m1.032s 
sys 0m0.155s 

答えて

1

あなたは上の遅さを非難しています間違ったツール。遅いのは、Ruby and Railsの起動時間であり、Cucumberではありません。これはよく知られています。

+0

ありがとう!だから解決策は何ですか?そして、なぜrspecが速いのですか? – RubyDev

+0

私のテストは今は遅いですが、私のアプリケーションはPHPになっています。 – Rimian

+0

@Aslakが正しいと言いたいと思います。そして、私はキュウリといくつかの経験を得ていると思うが、私はそれが-4であることはむしろ不公平だと思う。 – RubyDev

1

では1つだけじゃない、私はので、キュウリを使用して停止それはちょうど私のコンピュータで時間がかかりました。私が見たRails-castsや他の人々のチュートリアルと比べると、たくさんの例(70-100ish)が得られるのであれば、私のRSpecはちょっと遅いです。キュウリは、鉱山に同じ時間を取った私のスペックは以下のとおりです。

Windows 7 64bit 
Intel i3 3.19 Ghz 
4.00 Gb Ram 

そして、それはまだお尻をドラッグ、それは私はちょうどこれを高速に実行するために得るために、私のコンピュータをアップグレードする必要が迷惑なんです!それはWindows 7のものかもしれません。

+0

私はUbuntuを使用しており、テスト実行前に約20秒遅れています –

+0

railscastsテストですぐに実行されます)) –

+3

Windowsでは、Rubyは一般的に遅いです。また、私はキュウリがWindows上で遅くなっていることに関する他の質問を見ました。 – RubyDev

8

ここで使用する先割れスプーン、そして、再びデータです:

$ time rspec --drb spec/ 

Finished in 0.00182 seconds 
0 examples, 0 failures 

real 0m1.495s 
user 0m0.952s 
sys 0m0.147s 

、ここでキュウリのためのデータである:

RSpecのは、私は違いを感じることができなくても例を挙げて、その後以前より高速です。サスペンス....

$ time cucumber --drb 
Using the default profile... 
Disabling profiles... 
0 scenarios 
0 steps 
0m0.000s 

real 0m3.775s 
user 0m2.187s 
sys 0m0.367s 

うわー、今や顕著な違いがあります。あなたが "main:Object(NoMethodError)"のための "未定義のメソッド" World "を取得した場合は、sporkバージョン0.9.0.rc9を使用してください。

更新:他の人にそれらが必要な場合の手順は次のとおりです[Ruby 1.9.2 + Rails 3。1]:

Gemfile:

group :development do 
    gem 'rspec-rails' 
end 

group :test do 
    gem 'database_cleaner' 
    gem 'rails3-generators' 
    gem 'factory_girl_rails' 
    gem 'cucumber-rails' 
    gem 'capybara' 
    gem 'spork', '0.9.0.rc9' 
end 

その後、実行バンドルがインストール:

bundle install 

[あなたはRSpecの]

rails g rspec:install 
spork --bootstrap 

編集仕様/ spec_helper.rbを使用している場合と、指示に従ってください。基本的にはキュウリのため

Spork.prefork do 
end 

の間にすべてをかける:

rails g cucumber:install --spork 

実行

bundle exec spork cuc 

ランテストを先割れスプーン:

rspec --drb spec/ 
cucumber --drb 

BDDをお楽しみに!!次のオートテスト!

更新:

あなたは--drbオプションなしでRSpecの実行に.rspecする--drbを追加することができます。

アップデート:ただ、私は、次の、先割れスプーンサーバが稼働して...キュウリと--drb必要はありません実現

は十分であろう:

cucumber features/ 
+1

うわー - ずっと良い!クイックメモ... ....上記のようにキュウリを実行する必要があります(例:普通のキュウリまたはキュウリ - プロファイルウィップ)**は** '** exec exec rake cucumber'です。 – cailinanne

+1

誰かがそれを必要とするならば、Rails 3.1用のソリューションを更新しました。 – RubyDev

関連する問題