1

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 インストールです。

これが私がやっていることです:

  1. でアプリを作成する

    rails new cucumber_test -T
    
  2. 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たが、速度も向上しませんでした。 )

  3. Cucumber ジェネレーターを実行します。

    rails g cucumber:install
    
  4. 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 秒のオーバーヘッドがあるようです。それは私が排除しようとしているものです。

4

0 に答える 0