Sha256: ce7ee6c9a1d55085843e78b9df194f42086b336f8faa85d64fd8023864ad6d8a

Contents?: true

Size: 979 Bytes

Versions: 3

Compression:

Stored size: 979 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

      RSpec.configure do |c|
        c.color = true
        c.add_formatter 'Fuubar'
        c.filter_run_including to_filter(tags) unless tags.blank?
      end

      $LOAD_PATH << test_cases_directory
      RSpec::Core::Runner.run(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

3 entries across 3 versions & 1 rubygems

Version Path
proxy_tester-0.0.3 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.0.2 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.0.1 lib/proxy_tester/rspec_runner.rb