Sha256: 80b25616ba415091e0865fc7bb57d5760a81feee349e71301d2b93072f8b52eb

Contents?: true

Size: 1021 Bytes

Versions: 1

Compression:

Stored size: 1021 Bytes

Contents

# encoding: utf-8
require 'rspec'

module ProxyTester
  class RspecRunner
    private 

    attr_reader :test_cases_directory

    public

    def initialize(options = {})
      @test_cases_directory = options.fetch(:test_cases_directory, ProxyTester.config.test_cases_directory)
    end

    def run(tags)
      ProxyTester.load_user_database
      ProxyTester.clear_environment
      
      options = []
      options << '--color'
      options = options + ['--format', 'Fuubar' ]
      options = options + ['--order', 'rand' ]
      options = options + ['--tag' ] + tags

      $LOAD_PATH << test_cases_directory
      RSpec::Core::Runner.run(options + spec_files)
    end

    private

    def to_filter(a)
      Hash[*a.collect { |e| e.to_sym }.zip([true] * a.size).flatten]
    end

    def spec_files
      files = ::Dir.glob(::File.join(test_cases_directory, '**', '*_spec.rb'))
      ProxyTester.ui_logger.warn "No spec files found at \"#{test_cases_directory}\"." if files.blank?

      files
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
proxy_tester-0.0.5 lib/proxy_tester/rspec_runner.rb