-
-
Save nandosola/5396267 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
require 'rubygems' | |
require 'bundler' | |
Bundler.setup(:default) | |
APP_ROOT = File.join(File.dirname(__FILE__)) | |
SUPPORTED_BROWSERS=%w(firefox chrome safari ie9 ie8 ie7) | |
TEST_BROWSER='poltergeist' | |
# See: http://www.ruby-forum.com/topic/207203 | |
# rake spec[vararg1,vararg2,...] won't be available until next stable Rake gem release | |
# | |
# Meanwhile use rake spec["arg1 arg2 ..."] | |
# | |
desc 'Run specs multibrowser test' | |
task :spec, [:browsers] do |t,args| | |
ENV['RACK_ENV'] ||= 'test' | |
puts "Setting up #{ENV['RACK_ENV']} environment" | |
Bundler.setup(:test) | |
spec_browsers = args.browsers.split(' ') | |
if (SUPPORTED_BROWSERS | spec_browsers).size == SUPPORTED_BROWSERS.size | |
require 'rspec/core/rake_task' | |
(spec_browsers<<TEST_BROWSER).each do |b| | |
RSpec::Core::RakeTask.new('spec') do |spec| | |
ENV['TEST_BROWSER'] = b # Cannot use custom variables (easily) | |
spec.rspec_opts = ['--color'] | |
spec.pattern = FileList[File.join(APP_ROOT, 'spec', 'spec_base.rb')] | |
end | |
end | |
else | |
err_b = spec_browsers.reduce([]){|m,x| (SUPPORTED_BROWSERS.include?(x)) ? m : m<<x} | |
puts "Unknown browser #{err_b.to_s}", | |
"Please use: #{SUPPORTED_BROWSERS.to_s}" | |
end | |
end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# encoding: utf-8 | |
require 'rubygems' | |
require 'bundler' | |
Bundler.setup(:default, :test) | |
require 'rspec' | |
require 'rack/test' | |
require 'capybara' | |
ENV['RACK_ENV'] ||= 'test' | |
APP_ROOT = File.join(File.dirname(__FILE__), '..') | |
browser = ENV['TEST_BROWSER'].to_sym | |
puts "Testing with browser: #{browser.to_s}" | |
include Capybara::DSL | |
Capybara.default_driver ||= :selenium #this is needed to fix a bug when browser is null | |
Capybara.register_driver :selenium do |app| | |
case browser | |
when :poltergeist | |
require 'capybara/poltergeist' | |
Capybara.current_driver = :poltergeist | |
else | |
Capybara::Selenium::Driver.new(app, :browser => browser) | |
end | |
end | |
Dir[ File.join(APP_ROOT, '*_spec.rb') ].sort.each{|p| load p } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment