Cha*_*ant 5 bdd ruby-on-rails cucumber ruby-on-rails-3
我是BDD的新手.每当我尝试使用黄瓜时,我发现它很慢.我在两台不同的机器上尝试过使用Rails 3.0.9和3.1.其中一台机器是旧的IBM thinkpad笔记本电脑,配备2 GB内存; 另一个是带4 GB RAM的PC [如果需要,我可以得到确切的规格].两者都运行Fedora 14.
即使使用没有scnerios的新应用,Cucumber也需要几分钟.这是怎么回事:
$ cucumber
Using the default profile...
--- about 2 minutes delay---- and then it says:
0 scenarios
0 steps
0m0.000s
Run Code Online (Sandbox Code Playgroud)
相比之下,Rspec是即时的:
rspec
No examples found.
Finished in 0.00005 seconds
0 examples, 0 failures
Run Code Online (Sandbox Code Playgroud)
虽然黄瓜说它需要0m0.000s; 它实际上花了大约2分钟.并且,RSpec是即时的并且也正确显示时间:0.00005秒.
这是正常的吗?我是否需要一些额外的Gems或设置来加快处理速度.
更新:这里有更多数据:
先用黄瓜:
$time cucumber
Using the default profile...
0 scenarios
0 steps
0m0.000s
real 0m53.489s
user 0m37.051s
sys 0m1.973s
Run Code Online (Sandbox Code Playgroud)
然后用rspec
$ time rspec spec/
No examples found.
Finished in 0.00005 seconds
0 examples, 0 failures
real 0m1.925s
user 0m1.032s
sys 0m0.155s
Run Code Online (Sandbox Code Playgroud)
好.使用Spork,这里又是数据:
即使没有例子,Rspec比之前更快,我能感受到差异:
$ time rspec --drb spec/
Finished in 0.00182 seconds
0 examples, 0 failures
real 0m1.495s
user 0m0.952s
sys 0m0.147s
Run Code Online (Sandbox Code Playgroud)
以下是黄瓜的数据:
... 悬念....
$ time cucumber --drb
Using the default profile...
Disabling profiles...
0 scenarios
0 steps
0m0.000s
real 0m3.775s
user 0m2.187s
sys 0m0.367s
Run Code Online (Sandbox Code Playgroud)
哇,现在有明显的区别.如果你得到main的未定义方法`World':Object(NoMethodError)"请使用spork版本0.9.0.rc9.
更新:以下是步骤,如果有人需要它们[Ruby 1.9.2 + Rails 3.1]:
的Gemfile:
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
Run Code Online (Sandbox Code Playgroud)
然后,运行bundle install:
bundle install
Run Code Online (Sandbox Code Playgroud)
[如果你使用的是rspec]
rails g rspec:install
spork --bootstrap
Run Code Online (Sandbox Code Playgroud)
编辑spec/spec_helper.rb并按照说明操作.基本上把一切都放在
Spork.prefork do
end
Run Code Online (Sandbox Code Playgroud)
黄瓜:
rails g cucumber:install --spork
Run Code Online (Sandbox Code Playgroud)
跑spork
bundle exec spork cuc
Run Code Online (Sandbox Code Playgroud)
运行测试:
rspec --drb spec/
cucumber --drb
Run Code Online (Sandbox Code Playgroud)
享受BDD !! 自动测试下一个!
更新:
您可以将.drb添加到.rspec以运行rspec而不使用--drb选项.
更新:
刚刚意识到我不需要--drb与黄瓜..运行spork服务器,以下就足够了:
cucumber features/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3085 次 |
| 最近记录: |