Sha256: 1993a2800a4c9fb839a608473c8a821e6a9f1c409ec79c896ba70147a8dd68ca

Contents?: true

Size: 1.69 KB

Versions: 9

Compression:

Stored size: 1.69 KB

Contents

require 'rake/testtask'

module Henry

  class Task

    # The Henry Task implementation for MiniTest
    class MiniTestTask < RakeTask

      # The temporary output file path for the MiniTest execution.
      OUT_PATH = 'minitest.out'
      
      # Default base output directory
      DEFAULT_OUTPUT_BASE_DIR = '.henry'

      # The reports path template.
      REPORTS_DIR = 'reports/minitest'
      
      # The Minitest Rake Application name.
      #
      # @return [String] the rake application name.
      APPLICATION_NAME = 'minitest'
      
      def application_name
        APPLICATION_NAME
      end

      def out_path
        OUT_PATH
      end

      # Returns output base path
      #
      # @return [String] the base output path.
      def base_output_path
        @base_output_path ||= (self.data.system[:output_directory] ? "#{self.data.system[:output_directory]}/output" : DEFAULT_OUTPUT_BASE_PATH)
      end
      
      # Configures the Task.
      #
      # @param [Hash] params the task params.
      def configure(params, extended_context={})
        File.open(OUT_PATH, 'w') { |f| }

        pattern = params['pattern'] || './spec{,/*/**}/*_spec.rb'
        format  = params['format']  || 'DefaultReporter'

        File.open("preconfig.rb", 'w') do |f|
          f.write <<CODE
$stdout = File.open('#{OUT_PATH}', 'w')
require 'minitest/autorun'
require 'minitest/pride'
require 'minitest/reporters'
MiniTest::Reporters.use! MiniTest::Reporters::#{format}.new
CODE
        end

        # Makes available the spec rake task.
        Rake::TestTask.new('minitest') do |t|
          t.pattern = pattern
          t.ruby_opts << "-r ./preconfig"
        end

        super
      end

    end

  end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
henry-container-0.1.49 lib/henry/task/minitest_task.rb
henry-container-0.1.48 lib/henry/task/minitest_task.rb
henry-container-0.1.47 lib/henry/task/minitest_task.rb
henry-container-0.1.46 lib/henry/task/minitest_task.rb
henry-container-0.1.45 lib/henry/task/minitest_task.rb
henry-container-0.1.44 lib/henry/task/minitest_task.rb
henry-container-0.1.43 lib/henry/task/minitest_task.rb
henry-container-0.1.42 lib/henry/task/minitest_task.rb
henry-container-0.1.41 lib/henry/task/minitest_task.rb