Sha256: c7b886496fccff2155fa1b7b24f7e2118bda8e55f89df58f1e0838a5f5a632b7

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

require 'assert/rake_tasks/scope'

module Assert::RakeTasks

  class TestTask

    attr_accessor :name, :path, :files

    # Create a testing task
    def initialize(path)
      @path = path
      @files = []
      yield self if block_given?
    end

    def relative_path
      File.join(@path.to_s.split(File::SEPARATOR)[1..-1])
    end

    def scope_description
      relative_path.empty? ? "" : " for #{relative_path}"
    end

    def description
      "Run all tests#{scope_description}"
    end

    def name
      # File.basename(@path, Scope.test_file_suffix).to_sym
      @name ||= File.basename(@path).tap do |bname|
        Scope.test_file_suffixes.each { |suffix| bname.gsub(suffix, '') }
      end.to_sym
    end

    def file_list # :nodoc:
      self.files.collect{|f| "\"#{f}\""}.join(' ')
    end

    def ruby_args
      [ "-rrubygems",
        "\"#{self.rake_loader}\"",
        self.file_list
      ].compact.join(" ")
    end

    def show_loaded_files?
      ENV["show_loaded_files"] == 'true'
    end

    protected

    def rake_loader
      find_file('rake/rake_test_loader')
    end

    def find_file(fn) # :nodoc:
      $LOAD_PATH.each do |path|
        file_path = File.join(path, "#{fn}.rb")
        return file_path if File.exist? file_path
      end
      nil
    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
assert-1.1.0 lib/assert/rake_tasks/test_task.rb
assert-1.0.0 lib/assert/rake_tasks/test_task.rb
assert-0.8.1 lib/assert/rake_tasks/test_task.rb
assert-0.8.0 lib/assert/rake_tasks/test_task.rb