Sha256: 467960af348ef7e04f89fd306505259c37b5943c3df275eb99a00ba7c4bcefbb

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

# encoding: utf-8
require 'rspec'
require 'rspec/legacy_formatters'
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 << '--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

2 entries across 2 versions & 1 rubygems

Version Path
proxy_tester-0.1.5 lib/proxy_tester/rspec_runner.rb
proxy_tester-0.1.4 lib/proxy_tester/rspec_runner.rb