Sha256: d20d9813110e8cea20365b8dcc1166b785c76a38c6adc8a19bef3dc9234f7e6f

Contents?: true

Size: 650 Bytes

Versions: 4

Compression:

Stored size: 650 Bytes

Contents

class MiniTest::Unit::TestCase # :nodoc:
  ##
  # Focus on the next test defined. Cumulative. Equivalent to
  # running with command line arg: -n /test_name|.../
  #
  #   class MyTest < MiniTest::Unit::TestCase
  #     ...
  #     focus
  #     def test_pass; ... end # this one will run
  #     ...
  #   end

  def self.focus
    opts = MiniTest::Unit.runner.options
    meta = class << self; self; end

    opts[:names] ||= []

    meta.send :define_method, :method_added do |name|
      opts[:names] << name.to_s
      opts[:filter] = "/^(#{Regexp.union(opts[:names]).source})$/"

      meta.send :remove_method, :method_added
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
minitest-focus-1.2.1 lib/minitest/focus4.rb
minitest-focus-1.2.0 lib/minitest/focus4.rb
minitest-focus-1.1.2 lib/minitest/focus4.rb
minitest-focus-1.1.1 lib/minitest/focus4.rb