class QUnited::Runner
Constants
- DRIVERS_PRIORITY
The drivers in order of which to use first when not otherwise specified
Attributes
js_source_files[RW]
js_test_files[RW]
options[RW]
Public Class Methods
new(js_source_files, js_test_files, options={})
click to toggle source
# File lib/qunited/runner.rb, line 9 def initialize(js_source_files, js_test_files, options={}) @js_source_files, @js_test_files, @options = js_source_files, js_test_files, options end
Public Instance Methods
best_available_driver()
click to toggle source
# File lib/qunited/runner.rb, line 75 def best_available_driver DRIVERS_PRIORITY.map { |driver| get_driver(driver) }.find { |driver| driver.available? } end
confirm_existence_of_files(files_array)
click to toggle source
# File lib/qunited/runner.rb, line 79 def confirm_existence_of_files(files_array) files_array.each { |f| raise UsageError, "File not found: #{f}" unless File.exist? f } end
get_driver(klass)
click to toggle source
# File lib/qunited/runner.rb, line 63 def get_driver(klass) if known_driver_classes.include?(klass.to_sym) ::QUnited::Driver.const_get(klass.to_s) end end
get_formatter(klass)
click to toggle source
# File lib/qunited/runner.rb, line 69 def get_formatter(klass) if known_formatter_classes.include?(klass.to_sym) ::QUnited::Formatter.const_get(klass.to_s) end end
resolve_driver_class()
click to toggle source
# File lib/qunited/runner.rb, line 29 def resolve_driver_class if options[:driver] begin driver_class = get_driver(options[:driver]) rescue NameError raise UsageError, "#{options[:driver].to_s} does not exist" end if !driver_class raise UsageError, "#{driver_class} driver not found" elsif !driver_class.available? raise UsageError, "#{driver_class} driver specified, but not available" end end driver_class ||= best_available_driver raise(UsageError, 'No driver available') unless driver_class driver_class end
resolve_formatter_class()
click to toggle source
# File lib/qunited/runner.rb, line 49 def resolve_formatter_class if options[:formatter] begin formatter_class = get_formatter(options[:formatter]) rescue NameError raise UsageError, "#{options[:formatter].to_s} does not exist" end raise UsageError, "#{formatter_class} formatter not found" unless formatter_class end formatter_class || ::QUnited::Formatter::Dots end
run()
click to toggle source
# File lib/qunited/runner.rb, line 13 def run [js_source_files, js_test_files].each { |files| confirm_existence_of_files files } driver_class, formatter_class = resolve_driver_class, resolve_formatter_class driver = driver_class.new(js_source_files, js_test_files) driver.formatter = formatter_class.new({:driver_name => driver.name}) if options[:fixture_files] driver.fixture_files = options[:fixture_files] end results = driver.run results.all? { |r| r.passed? } end
Private Instance Methods
known_driver_classes()
click to toggle source
# File lib/qunited/runner.rb, line 85 def known_driver_classes ::QUnited::Driver.constants.map(&:to_sym).reject { |d| [:Base, :ResultsCollector].include? d } end
known_formatter_classes()
click to toggle source
# File lib/qunited/runner.rb, line 89 def known_formatter_classes ::QUnited::Formatter.constants.map(&:to_sym).reject { |d| d == :Base } end