关于Ruby on Rails:运行测试时Cucumber 非常慢[在两台不同的Fedora机器上测试]

Cucumber is very slow when running tests [Tested on two different Fedora machines]

我是BDD的新手。每次尝试使用Cucumber 时,我都会发现它速度很慢。我已经尝试过Rails 3.0.9


好的。使用过的Spork,下面是数据:

即使没有示例,Rspec的速度也比早期更快,我可以感觉到与众不同:

1
2
3
4
5
6
7
8
$ time rspec --drb spec/

Finished in 0.00182 seconds
0 examples, 0 failures

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

这是Cucumber 的数据:

...悬念......

1
2
3
4
5
6
7
8
9
10
$ 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]:

ruby文件:

1
2
3
4
5
6
7
8
9
10
11
12
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

然后,运行捆绑安装:

1
bundle install

[如果您使用的是rspec]

1
2
rails g rspec:install
spork --bootstrap

编辑spec / spec_helper.rb并按照说明进行操作。基本上将所有内容放在

之间

1
2
Spork.prefork do
end

对于Cucumber :

1
rails g cucumber:install --spork

运行spork

1
bundle exec spork cuc

运行测试:

1
2
rspec --drb spec/
cucumber --drb

享受BDD!接下来自动测试!

更新:

您可以将--drb添加到.rspec以运行不带--drb选项的rspec。

更新:

刚意识到我不需要--drb和Cucumber ..在运行spork服务器的情况下,以下操作就足够了:

1
cucumber features/


您将错误的原因归咎于错误的工具。慢的是Ruby和Rails的启动时间,而不是Cucumber。这是众所周知的。


您不是唯一一个,我停止使用Cucumber ,因为它在计算机上花费的时间太长。仅当我收到许多示例(70-100ish)时,我的RSpec才有点慢。与我所观看过的Rails-casts和其他人的教程相比,我觉得很好(10-12秒)。Cucumber 花了我相同的时间,我的规格是:

1
2
3
Windows 7 64bit
Intel i3 3.19 Ghz
4.00 Gb Ram

它仍然拖着屁股,令人讨厌的是,我必须升级我的计算机才能使它快速运行!可能是Windows7。