Огурец очень медленный при выполнении тестов [Проверено на двух разных машинах Fedora] - PullRequest
5 голосов
/ 16 июля 2011

Я новичок в BDD.Каждый раз, когда я пытаюсь использовать огурец, я нахожу это довольно медленным.Я пробовал с Rails 3.0.9 и 3.1 на двух разных машинах.Одна из машин - старый ноутбук IBM Thinkpad с оперативной памятью 2 ГБ;а другой - ПК с 4 ГБ оперативной памяти [я могу получить точные спецификации, если требуется].Оба запускают Fedora 14.

Даже с новым приложением без scnerios огурец займет минуты.Вот как это происходит:

$ cucumber 
Using the default profile...
--- about 2 minutes delay---- and then it says:
0 scenarios
0 steps
0m0.000s

Напротив, Rspec является мгновенным:

rspec
No examples found.

Finished in 0.00005 seconds
0 examples, 0 failures

В то время как огурец говорит, что это заняло 0m0.000 с;на самом деле это заняло около 2 минут.И RSpec был мгновенным и правильно показывает время: 0,00005 секунд.

Это нормально.Нужны ли мне дополнительные настройки Gems Or для ускорения процесса.

Обновление: Вот еще данные:

Сначала с огурцом:

$time cucumber
Using the default profile...
0 scenarios
0 steps
0m0.000s

real    0m53.489s
user    0m37.051s
sys 0m1.973s

, а затем с 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

Ответы [ 3 ]

8 голосов
/ 17 июля 2011

Хорошо. Использовал Spork, и вот снова данные:

Rspec быстрее, чем раньше, даже без примеров, я чувствую разницу:

$ time rspec --drb spec/

Finished in 0.00182 seconds
0 examples, 0 failures

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

А вот данные по огурцу:

... неизвестность ....

$ time cucumber --drb
Using the default profile...
Disabling profiles...
0 scenarios
0 steps
0m0.000s

real    0m3.775s
user    0m2.187s
sys 0m0.367s

Ух ты, сейчас есть заметная разница. Если вы получили «неопределенный метод` World 'для main: 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

Затем запустите пакетную установку:

bundle install

[Если вы используете rspec]

rails g rspec:install
spork --bootstrap

отредактируйте spec / spec_helper.rb и следуйте инструкциям. В основном все между

Spork.prefork do
end

для огурца:

rails g cucumber:install --spork

Бег спорка

bundle exec spork cuc

Выполнить тесты:

rspec --drb spec/
cucumber --drb

Наслаждайтесь BDD !! Автотест следующий!

Обновление:

Вы можете добавить --drb в .rspec для запуска rspec без опции --drb.

Обновление:

Просто понял, что мне не нужен --drb с огурцом .. с запущенным сервером Spork, будет достаточно следующего:

cucumber features/
1 голос
/ 18 июля 2011

Вы обвиняете в медлительности не того инструмента.Что медленно, так это время запуска Ruby и Rails, а не Cucumber.Это хорошо известно.

1 голос
/ 16 июля 2011

Вы не единственный, я перестал употреблять огурец, потому что это заняло слишком много времени на моем компьютере.Мой RSpec будет немного медленным, только если я получу много примеров (70-100ish) по сравнению с Rails-бросками и учебниками других людей, которые я смотрел, но для меня это нормально (10-12 секунд).Огурец потребовал столько же времени на мои, мои характеристики:

Windows 7 64bit
Intel i3 3.19 Ghz
4.00 Gb Ram

И это все еще тянет задницу, раздражает, что мне нужно обновить компьютер, чтобы заставить его работать быстро!Это может быть Windows 7.

...