在Rails 4中加速Rake Cucumber测试运行

时间:2014-06-14 13:20:44

标签: ruby-on-rails ruby cucumber rake spring-gem

我想在Rails 4中使用Cucumber via Rake for BDD。我已经安装了它并挂钩到spring以加快测试但是它们需要比预期更长的时间来运行。当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

使用bin/rake进行运行是Spring Readme中定义的内容。没有耙子的弹簧运行会产生更快的预期时间。

$ 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

问题

如何设置Cucumber,Spring和Rake,以便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
    

    我也尝试在{开发环境中]保留spring的默认列表,但这并没有加快速度。

  3. 运行Cucumber生成器:

    rails g cucumber:install
    
  4. 更新Spring binstubs:

    bundle exec spring binstub --all
    

    返回:

    * bin/rake: spring already present
    * bin/cucumber: generated with spring 
    * bin/rails: spring already present
    
  5. 这是我运行时间测试的地方。当Spring停止运行时,Cucumber一直需要更长时间才能运行。即使使用Spring运行,在使用Rake时测试套件实际开始之前似乎总是有2秒的开销。这就是我想要消除的东西。

0 个答案:

没有答案