Sha256: 9204293b2f282e2d9c25275c0da68cff3930b4d60ee03e6797890f55b944dbe8

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

# encoding: utf-8
require 'rspec'

module ProxyTester
  class RspecRunner
    private 

    attr_reader :test_cases_directory, :tags

    public

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

    def run
      ProxyTester.load_user_database
      ProxyTester.clear_environment

      $LOAD_PATH << test_cases_directory
      RSpec::Core::Runner.run(arguments)
    end

    def to_s
      arguments.join(" ")
    end

    private

    def arguments
      options = []
      options << '--color'
      options = options + ['--format', 'Fuubar' ]
      options = options + ['--order', 'rand' ]

      Array(tags).each { |t| options << '--tag'; options << t }

      options + spec_files
    end

    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

4 entries across 4 versions & 1 rubygems

Version Path
proxy_tester-0.1.2 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.1.1 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.1.0 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.0.9 lib/proxy_tester/rspec_runner.rb