Sha256: e61f0d8f0c172def906888c3a753932a648e785c51cccaff9cf78263d35a9a06

Contents?: true

Size: 990 Bytes

Versions: 2

Compression:

Stored size: 990 Bytes

Contents

module DeepTest
  class TestTask
    attr_accessor :requires

    def initialize(name = :deep_test)
      @requires = []
      @name = name
      @options = Options.new({})
      self.pattern = "test/**/*_test.rb"
      yield self if block_given?
      define
    end
    
    def define
      desc "Run '#{@name}' suite using DeepTest"
      task @name do
        require_options = requires.map {|f| "-r#{f}"}.join(" ")
        ruby "#{require_options} #{runner} '#{@options.to_command_line}'"
      end
    end

    Options::VALID_OPTIONS.each do |option|
      eval <<-end_src
        def #{option.name}
          @options.#{option.name}
        end

        def #{option.name}=(value)
          @options.#{option.name} = value
        end
      end_src
    end

    def pattern=(pattern)
      @options.pattern = Dir.pwd + "/" + pattern
    end

  private

    def runner
      File.expand_path(File.dirname(__FILE__) + "/../../script/internal/run_test_suite.rb")
    end    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
deep_test-1.2.0 lib/deep_test/test_task.rb
deep_test-1.2.1 lib/deep_test/test_task.rb