Rspec 为什么cucumber功能即使失败也能继续运行?

Rspec 为什么cucumber功能即使失败也能继续运行?,rspec,cucumber,Rspec,Cucumber,它是rails 2.3.5应用程序。我正在使用rspec和cucumber进行测试。 当我运行autospec时,它会正确运行,并带有警告(未运行功能。要在autotest中运行功能,请将AUTOFEATURE设置为true。)如下: [~/rails_apps/automation (campaign)⚡] ➔ autospec (Not running features. To run features in autotest, set AUTOFEATURE=true.) (Not r

它是rails 2.3.5应用程序。我正在使用rspec和cucumber进行测试。 当我运行autospec时,它会正确运行,并带有警告
(未运行功能。要在autotest中运行功能,请将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
时,specs会运行,cuke特性也会运行。 但问题是它不会停止。它运行这些功能,并在循环中一次又一次地运行它们。 它失败后不会停止。这是由于如下所示的警告
警告:$KCODE为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 

自动测试在每次运行后检查rails项目中的所有文件,如果发现任何修改,则重新运行测试。您需要将异常添加到
.autotest
配置文件中,以忽略正在更改的文件。下面是一个示例
.autotest

Autotest.add_hook :initialize do |at|
  %w{.git vendor rerun.txt}.each {|exception| at.add_exception(exception)}
end
Cucumber在其测试周期中创建
rerun.txt
——这可能是导致问题的原因。根据特定的系统配置,您可能需要添加其他条目


另外,
Autospec
autotest
的包装器,因此如果您遇到
Autospec
的问题,在
上搜索“autotest”
可能会得到更好的结果

@zettetic,谢谢你的回复。我会调查的,回来吧。我试过了,不知怎么的,它起作用了。但这是什么意思?警告:$KCODE为NONE。我必须放置一些额外的文件夹才能正常工作。Autotest.add|u hook:初始化do|at |%w{.git vendor rerun.txt tmp log}。每个{|异常| at.add|u异常(异常)}结束