代码之家  ›  专栏  ›  技术社区  ›  millisami

为什么黄瓜的功能即使失败也会继续运行?

  •  0
  • millisami  · 技术社区  · 16 年前

    它是一个rails 2.3.5应用程序。我在用rspec和cumber做测试。 当我运行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 ,规范运行,cuke特性也运行。 但问题是它不会停止。它运行这些特性,并在一个循环中一次又一次地运行它们。 失败后不会停止。这是因为警告吗 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 
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   zetetic    16 年前

    自动测试在每次运行后检查rails项目中的所有文件,如果发现任何修改,则重新运行测试。您需要在 .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 .