失败后立即再次运行Rspec

时间:2015-03-03 19:54:38

标签: testing rspec rake

我正在使用browserstack进行一些自动跨浏览器测试,并且针对多个浏览器执行rake任务的功能测试,如下所示:

namespace :spec do
  desc "Run Selenium and record results to BrowserStack"
  task :browser_testing_demo => [:environment] do
    BROWSERS.keys.each do |browser_name|
      puts "Cross browser testing against #{browser_name}."

      Rake::Task["browser_testing_demo:#{browser_name}"].execute
    end
  end
end

namespace :browser_testing_demo do
  BROWSERS.keys.each do |browser_key|
    RSpec::Core::RakeTask.new("#{browser_key}_run".to_sym) do |t|
      t.pattern = 'spec/cross_browser/cross_browser_ui_spec.rb'
    end

    desc "Run rspec against #{BROWSERS[browser_key]['browser']} #{BROWSERS[browser_key]['browser_version']}"
    task browser_key do
      ENV['BROWSER_TASK_NAME'] = browser_key

      Rake::Task["browser_testing_demo:#{browser_key}_run"].execute
    end
  end
end

浏览器只是一个导入的json文件,其中包含我感兴趣的不同浏览器配置。这非常有效(与browserstack连接,运行测试,并记录所有浏览器的屏幕截图),前提是没有错误。问题是发生故障或其他错误。这会导致rspec转储结果(“Failed exaples:...”)并且下一个rake任务没有开始。有什么方法可以阻止这种行为的发生?

(我在各个地方尝试过救援模块无济于事。我想可能有一个我可以设置的rspec配置?)

1 个答案:

答案 0 :(得分:0)

我可以通过将此行添加到我的RSpec.configure块来执行此操作:

config.failure_exit_code = 0