【发布时间】:2015-03-03 19:54:37
【问题描述】:
我正在使用 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
BROWSERS 只是一个导入的 json 文件,其中包含我感兴趣的不同浏览器配置。只要没有错误,它就可以完美运行(与 browserstack 连接、运行测试并记录所有浏览器的屏幕截图)。问题是发生故障或其他错误时。这会导致 rspec 转储结果(“Failed exaples: ...”)并且下一个 rake 任务不会开始。有什么办法可以阻止这种行为的发生?
(我在各个地方都尝试过救援块,但无济于事。我在想可能有我可以设置的 rspec 配置?)
【问题讨论】: