0
votes

I'm doing some automated cross-browser testing with browserstack, and have a feature test running through a rake task for multiple browsers like so:

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

BROWSERS is just an imported json file with different browser configurations I'm interested in. This works perfectly (connects with browserstack, runs tests, and records screenshots for all browsers) providing there are no errors. The issue is when a failure or other error happens. This causes the rspec to dump the results ("Failed exaples: ...") and the next rake task doesn't commence. Any way to stop this behavior from happening?

(i've tried rescue blocks in various places to no avail. I'm thinking there may be an rspec config that i can set?)

1

1 Answers

0
votes

I was able to do this by adding this line to the my RSpec.configure block:

config.failure_exit_code = 0