Module: MinitestVisible

Defined in:
lib/minitest_visible.rb,
lib/minitest_visible/version.rb

Overview

This module adds version identification and simple progress tracking to the running of tests under the MiniTest gem.

Constant Summary collapse

VERSION =

The version of this module.

"0.1.2"

Class Method Summary collapse

Class Method Details

.included(target) ⇒ Object

Tracking via a module include.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/minitest_visible.rb', line 8

def self.included(target)
  file = (/^.+(?=:\d+:in)/.match(caller[0])).to_s

  target.send(:define_method, :initialize) do |*all|
    unless defined? $minitest_visible_once_per_run
      $minitest_visible_once_per_run = :done
      puts "MiniTest version = #{MiniTest::Unit::VERSION}"
    end

    unless defined? $minitest_visible_once_per_file
      $minitest_visible_once_per_file = nil
    end

    if $minitest_visible_once_per_file != file
      puts "\nRunning test file: #{File.split(file)[1]}"
      $minitest_visible_once_per_file = file
    end

    super(*all)
  end
end

.track(target, file) ⇒ Object

The older tracking mechanism. Deprecated.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/minitest_visible.rb', line 31

def self.track(target, file)
  target.send(:define_method, :initialize) do |*all|
    unless defined? $minitest_visible_once_per_run
      $minitest_visible_once_per_run = :done
      puts "MiniTest version = #{MiniTest::Unit::VERSION}"
    end

    if $minitest_visible_once_per_file != file
      puts "\nRunning test file: #{File.split(file)[1]}"
      puts "The track method is deprecated. Use include MinitestVisible instead."
      $minitest_visible_once_per_file = file
    end

    super(*all)
  end

end