我想在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。
这就是我正在做的事情:
使用
创建应用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
(我也尝试在{开发环境中]保留spring
的默认列表,但这并没有加快速度。)
运行Cucumber生成器:
rails g cucumber:install
更新Spring binstubs:
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秒的开销。这就是我想要消除的东西。