Sha256: 2fdd2763cd3ac3885ca1da2ca185f19019d64447f205017d493681d86f04b539

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

# encoding: utf-8
require 'rspec'
require 'bundler'

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
      test_cases.each do |t|
        Dir.chdir t do
          Bundler.setup
          RSpec::Core::Runner.run(arguments)
        end
      end
    end

    def to_s
      arguments.join(" ")
    end

    private

    def test_cases
      ::Dir.glob(::File.join(test_cases_directory, '*')).keep_if { |d| FileTest.directory? d }
    end

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

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

      options << '.'

      options
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
proxy_tester-0.1.10 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.1.8 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.1.6 lib/proxy_tester/rspec_runner.rb