Rails 4 の BDD に Rake 経由で Cucumber を使用したいと考えていますspring
。テストを高速化するために、Cucumber をインストールして接続しましたが、実行に予想以上の時間がかかります。Spring がアクティブな場合、テストは明らかに高速に実行されますが、実行する機能/シナリオがない場合でも、Cucumber の起動時間は常に最大 2 秒です。例えば:
$ bin/spring status
Spring is not running.
$ time bin/rake cucumber
/Users/alans/.rvm/rubies/ruby-2.1.1/bin/ruby -S bundle exec cucumber --profile default
Using the default profile...
0 scenarios
0 steps
0m0.000s
bin/rake cucumber 0.08s user 0.02s system 3% cpu 3.463 total
$ bin/spring status
Spring is running:
64383 spring server | cucumber_test | started 48 secs ago
64384 spring app | cucumber_test | started 48 secs ago | test mode
$ time bin/rake cucumber
/Users/alans/.rvm/rubies/ruby-2.1.1/bin/ruby -S bundle exec cucumber --profile default
Using the default profile...
0 scenarios
0 steps
0m0.000s
bin/rake cucumber 0.08s user 0.02s system 4% cpu 2.098 total
実行に使用することは、 Spring Readmebin/rake
で定義されているものです。レーキなしでスプリングを走らせると、より速い予想タイムが得られます。
$ time spring cucumber
Using the default profile...
0 scenarios
0 steps
0m0.000s
spring cucumber 0.06s user 0.01s system 13% cpu 0.537 total
質問
Rake を使用しない場合と同じくらい迅速にテストを実行できるように、Cucumber、Spring、および Rake をセットアップするにはどうすればよいですか?
詳細
私の環境は、10.9.3 を実行する SSD を搭載した Mac に ruby-2.1.1 と rails 4.1.1 の RVM インストールです。
これが私がやっていることです:
でアプリを作成する
rails new cucumber_test -T
gem ファイルを次のように更新します。
group :development, :test do gem 'cucumber-rails', :require => false gem 'database_cleaner' gem 'rspec-rails' gem 'spring' gem 'spring-commands-cucumber' end
次に実行します:
bundle install
( :development 環境だけにデフォルトのリストを残してみまし
spring
たが、速度も向上しませんでした。 )Cucumber ジェネレーターを実行します。
rails g cucumber:install
Spring binstub を更新します。
bundle exec spring binstub --all
どちらが返されますか:
* bin/rake: spring already present * bin/cucumber: generated with spring * bin/rails: spring already present
ここで時間テストを実行します。Spring が停止すると、Cucumber の実行に一貫して時間がかかります。Spring を実行していても、Rake を使用すると、テスト スイートが実際に開始されるまでに常に 2 秒のオーバーヘッドがあるようです。それは私が排除しようとしているものです。