Class: CI::Reporter::Runner

Inherits:
MiniTest::Unit
  • Object
show all
Defined in:
lib/ci/reporter/minitest.rb

Constant Summary collapse

@@out =
$stdout

Instance Method Summary collapse

Constructor Details

#initializeRunner

Returns a new instance of Runner.



56
57
58
59
# File 'lib/ci/reporter/minitest.rb', line 56

def initialize
  super
  @report_manager = ReportManager.new("test")
end

Instance Method Details

#_run_anything(type) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/ci/reporter/minitest.rb', line 61

def _run_anything(type)
  suites = MiniTest::Unit::TestCase.send "#{type}_suites"
  return if suites.empty?

  started_anything type

  sync = output.respond_to? :"sync=" # stupid emacs
  old_sync, output.sync = output.sync, true if sync

  _run_suites(suites, type)

  output.sync = old_sync if sync

  finished_anything(type)
end

#_run_suite(suite, type) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/ci/reporter/minitest.rb', line 81

def _run_suite(suite, type)
  start_suite(suite)

  header = "#{type}_suite_header"
  puts send(header, suite) if respond_to? header

  filter_suite_methods(suite, type).each do |method|
    _run_test(suite, method)
  end

  finish_suite
end

#_run_suites(suites, type) ⇒ Object



77
78
79
# File 'lib/ci/reporter/minitest.rb', line 77

def _run_suites(suites, type)
  suites.map { |suite| _run_suite suite, type }
end

#_run_test(suite, method) ⇒ Object



94
95
96
97
98
99
100
101
102
103
# File 'lib/ci/reporter/minitest.rb', line 94

def _run_test(suite, method)
  start_case(method)

  result = run_test(suite, method)

  @assertion_count += result._assertions
  @test_count += 1

  finish_case
end

#puke(klass, meth, e) ⇒ Object



105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/ci/reporter/minitest.rb', line 105

def puke(klass, meth, e)
  e = case e
      when MiniTest::Skip then
        @skips += 1
        fault(e, :skip)
        return "S" unless @verbose
        "Skipped:\n#{meth}(#{klass}) [#{location e}]:\n#{e.message}\n"
      when MiniTest::Assertion then
        @failures += 1
        fault(e, :failure, meth)
        "Failure:\n#{meth}(#{klass}) [#{location e}]:\n#{e.message}\n"
      else
        @errors += 1
        fault(e, :error)
        bt = MiniTest::filter_backtrace(e.backtrace).join "\n    "
        "Error:\n#{meth}(#{klass}):\n#{e.class}: #{e.message}\n    #{bt}\n"
      end
  @report << e
  e[0, 1]
end