2010-04-18 3 views
0

Его рельсы 2.3.5 приложения. Я использую rspec и огурец для тестирования. Когда я бегу Autospec, он правильно работает с предупреждением (Not running features. To run features in autotest, set AUTOFEATURE=true.), как показано ниже:Почему функции огурца продолжают работать, даже если они терпят неудачу?

[~/rails_apps/automation (campaign)⚡] ➔ autospec 
(Not running features. To run features in autotest, set AUTOFEATURE=true.) 
(Not running features. To run features in autotest, set AUTOFEATURE=true.) 
loading autotest/rails_rspec 
/home/millisami/.rvm/rubies/ree-1.8.7-2010.01/lib/ruby/1.8/pathname.rb:263: warning: `*' interpreted as argument prefix 
/home/millisami/.rvm/rubies/ree-1.8.7-2010.01/bin/ruby /home/millisami/.rvm/gems/ree-1.8.7-2010.01/gems/rspec-1.3.0/bin/spec --autospec /home/millisami/rails_apps/automation/spec/controllers/campaigns_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/board_spec.rb /home/millisami/rails_apps/automation/spec/models/user_spec.rb /home/millisami/rails_apps/automation/spec/models/campaign_spec.rb /home/millisami/rails_apps/automation/spec/controllers/outlets_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/boards_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/outlet_type_spec.rb /home/millisami/rails_apps/automation/spec/models/vendor_spec.rb /home/millisami/rails_apps/automation/spec/controllers/brands_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/vendors_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/dashboard_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/brand_spec.rb /home/millisami/rails_apps/automation/spec/helpers/dashboard_helper_spec.rb /home/millisami/rails_apps/automation/spec/models/outlet_spec.rb /home/millisami/rails_apps/automation/spec/models/client_spec.rb /home/millisami/rails_apps/automation/spec/controllers/clients_controller_spec.rb -O spec/spec.opts 

Теперь, как он предполагает, когда я бегу AUTOFEATURE=true autospec, пробеги данные и огурчик функции, а также. Но проблема в том, что он не остановится. Он запускает функции и запускает их снова и снова в цикле. Он не останавливается после его отказа. Это связано с предупреждением Warning: $KCODE is NONE, как показано ниже?

[~/rails_apps/automation (campaign)⚡] ➔ AUTOFEATURE=true autospec 
loading autotest/cucumber_rails_rspec 
Warning: $KCODE is NONE. 
/home/millisami/.rvm/gems/ree-1.8.7-2010.01/gems/treetop-1.4.5/lib/treetop/ruby_extensions/string.rb:31: warning: method redefined; discarding old indent 
/home/millisami/.rvm/rubies/ree-1.8.7-2010.01/lib/ruby/1.8/pathname.rb:263: warning: `*' interpreted as argument prefix 
/home/millisami/.rvm/gems/ree-1.8.7-2010.01/gems/activesupport-2.3.5/lib/active_support/core_ext/object/blank.rb:49: warning: method redefined; discarding old blank? 
/home/millisami/.rvm/rubies/ree-1.8.7-2010.01/bin/ruby /home/millisami/.rvm/gems/ree-1.8.7-2010.01/gems/rspec-1.3.0/bin/spec --autospec /home/millisami/rails_apps/automation/spec/controllers/campaigns_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/board_spec.rb /home/millisami/rails_apps/automation/spec/models/user_spec.rb /home/millisami/rails_apps/automation/spec/models/campaign_spec.rb /home/millisami/rails_apps/automation/spec/controllers/outlets_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/boards_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/outlet_type_spec.rb /home/millisami/rails_apps/automation/spec/models/vendor_spec.rb /home/millisami/rails_apps/automation/spec/controllers/brands_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/vendors_controller_spec.rb /home/millisami/rails_apps/automation/spec/controllers/dashboard_controller_spec.rb /home/millisami/rails_apps/automation/spec/models/brand_spec.rb /home/millisami/rails_apps/automation/spec/helpers/dashboard_helper_spec.rb /home/millisami/rails_apps/automation/spec/models/outlet_spec.rb /home/millisami/rails_apps/automation/spec/models/client_spec.rb /home/millisami/rails_apps/automation/spec/controllers/clients_controller_spec.rb -O spec/spec.opts 

ответ

2

Autotest проверяет все файлы в проекте рельсов после каждого прогона и повторно запускает тесты, если любые изменения обнаружены. Вы должны добавить исключения в свой конфигурационный файл .autotest, чтобы игнорировать файлы (файлы), которые меняются. Вот пример .autotest:

Autotest.add_hook :initialize do |at| 
    %w{.git vendor rerun.txt}.each {|exception| at.add_exception(exception)} 
end 

Огурец создает rerun.txt во время испытательного цикла - это, вероятно, то, что вызывает проблему. Возможно, вам потребуется добавить дополнительные записи в зависимости от вашей конкретной конфигурации системы.

PS. Autospec - обертка для autotest, поэтому, если у вас возникли проблемы с autospec, поиск по "autotest" может привести к лучшим результатам. More about autospec/autotest and Cucumber.

+0

@zetetic, Спасибо за ответ. Я посмотрю на русский. – Autodidact

+0

Я попробовал, и это работает как-то. Но что означает это предупреждение? Предупреждение: $ KCODE NONE. – Autodidact

+0

Мне пришлось добавить несколько дополнительных папок, чтобы они работали. Autotest.add_hook: инициализировать do | at | % w {.git vendor rerun.txt tmp log} .each {| exception | at.add_exception (исключение)} end – Autodidact

Смежные вопросы