minitest-reporters 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
- # minitest-reporters - create customizable MiniTest output formats [![Build Status](http://travis-ci.org/CapnKernul/minitest-reporters.png)](http://travis-ci.org/CapnKernul/minitest-reporters) #
1
+ # minitest-reporters - create customizable MiniTest output formats [![Build Status](https://secure.travis-ci.org/CapnKernul/minitest-reporters.png)](http://travis-ci.org/CapnKernul/minitest-reporters)
2
+
2
3
 
3
4
  Death to haphazard monkey-patching! Extend MiniTest through simple hooks.
4
5
 
@@ -25,7 +26,7 @@ Want to use multiple reporters?
25
26
 
26
27
  The following reporters are provided:
27
28
 
28
- MiniTest::Reporters::DefaultReporter # => Identical to the standard MiniTest reporter
29
+ MiniTest::Reporters::DefaultReporter # => Redgreen version of standard MiniTest reporter
29
30
  MiniTest::Reporters::SpecReporter # => Turn-like output that reads like a spec
30
31
  MiniTest::Reporters::ProgressReporter # => Fuubar-like output with a progress bar
31
32
  MiniTest::Reporters::RubyMateReporter # => Simple reporter designed for RubyMate
@@ -1,12 +1,12 @@
1
1
  module MiniTest
2
2
  # Filters backtraces of exceptions that may arise when running tests.
3
- class BacktraceFilter
3
+ class ExtensibleBacktraceFilter
4
4
  # Returns the default filter.
5
5
  #
6
6
  # The default filter will filter out all MiniTest and minitest-reporters
7
7
  # lines.
8
8
  #
9
- # @return [MiniTest::BacktraceFilter]
9
+ # @return [MiniTest::ExtensibleBacktraceFilter]
10
10
  def self.default_filter
11
11
  unless defined? @default_filter
12
12
  filter = self.new
@@ -4,6 +4,10 @@ module MiniTest
4
4
  Unit.runner
5
5
  end
6
6
 
7
+ def filter_backtrace(backtrace)
8
+ MiniTest.filter_backtrace(backtrace)
9
+ end
10
+
7
11
  def output
8
12
  runner.output
9
13
  end
@@ -5,7 +5,7 @@ module MiniTest
5
5
  require "minitest/reporter_runner"
6
6
  require "minitest/before_test_hook"
7
7
  require "minitest/test_runner"
8
- require "minitest/backtrace_filter"
8
+ require "minitest/extensible_backtrace_filter"
9
9
 
10
10
  module Reporters
11
11
  require "minitest/reporters/version"
@@ -18,14 +18,19 @@ module MiniTest
18
18
  autoload :GuardReporter, "minitest/reporters/guard_reporter"
19
19
  autoload :JUnitReporter, "minitest/reporters/junit_reporter"
20
20
 
21
- def self.use!(console_reporters = ProgressReporter.new, env = ENV)
22
- include_hook!
21
+ def self.use!(console_reporters = ProgressReporter.new, env = ENV, backtrace_filter = ExtensibleBacktraceFilter.default_filter)
22
+ use_runner!(console_reporters, env)
23
+ use_before_test_hook!
24
+ use_backtrace_filter!(backtrace_filter)
25
+ end
26
+
27
+ def self.use_runner!(console_reporters, env)
23
28
  runner = ReporterRunner.new
24
29
  runner.reporters = choose_reporters(console_reporters, env)
25
30
  Unit.runner = runner
26
31
  end
27
32
 
28
- def self.include_hook!
33
+ def self.use_before_test_hook!
29
34
  if Unit::VERSION >= "3.3.0"
30
35
  Unit::TestCase.send(:include, BeforeTestHook)
31
36
  else
@@ -35,6 +40,22 @@ module MiniTest
35
40
  end
36
41
  end
37
42
 
43
+ def self.use_backtrace_filter!(backtrace_filter)
44
+ if Unit::VERSION < "4.1.0"
45
+ MiniTest.class_eval do
46
+ class << self
47
+ attr_accessor :backtrace_filter
48
+ end
49
+
50
+ def self.filter_backtrace(backtrace)
51
+ backtrace_filter.filter(backtrace)
52
+ end
53
+ end
54
+ end
55
+
56
+ MiniTest.backtrace_filter = backtrace_filter
57
+ end
58
+
38
59
  def self.choose_reporters(console_reporters, env)
39
60
  if env["TM_PID"]
40
61
  [RubyMateReporter.new]
@@ -1,8 +1,9 @@
1
- require 'ansi'
1
+ require 'ansi/code'
2
2
 
3
3
  module MiniTest
4
4
  module Reporters
5
- # A reporter identical to the standard MiniTest reporter.
5
+ # A reporter identical to the standard MiniTest reporter except with more
6
+ # colors.
6
7
  #
7
8
  # Based upon Ryan Davis of Seattle.rb's MiniTest (MIT License).
8
9
  #
@@ -11,21 +12,13 @@ module MiniTest
11
12
  include Reporter
12
13
 
13
14
  def initialize(options = {})
14
- if options.is_a?(Hash)
15
- @backtrace_filter = options.fetch(:backtrace_filter, BacktraceFilter.default_filter)
16
- @detailed_skip = options.fetch(:detailed_skip, true)
17
- @color = options.fetch(:color) do
18
- output.tty? && (
19
- ENV["TERM"] == "screen" ||
20
- ENV["TERM"] =~ /term(?:-(?:256)?color)?\z/ ||
21
- ENV["EMACS"] == "t"
22
- )
23
- end
24
- else
25
- warn "Please use :backtrace_filter => filter instead of passing in the filter directly."
26
- @backtrace_filter = options
27
- @detailed_skip = true
28
- @color = false
15
+ @detailed_skip = options.fetch(:detailed_skip, true)
16
+ @color = options.fetch(:color) do
17
+ output.tty? && (
18
+ ENV["TERM"] == "screen" ||
19
+ ENV["TERM"] =~ /term(?:-(?:256)?color)?\z/ ||
20
+ ENV["EMACS"] == "t"
21
+ )
29
22
  end
30
23
  end
31
24
 
@@ -40,71 +33,70 @@ module MiniTest
40
33
  end
41
34
 
42
35
  def pass(suite, test, test_runner)
43
- after_test(green { '.' })
36
+ after_test(green('.'))
44
37
  end
45
38
 
46
39
  def skip(suite, test, test_runner)
47
- after_test(yellow { 'S' })
40
+ after_test(yellow('S'))
48
41
  end
49
42
 
50
43
  def failure(suite, test, test_runner)
51
- after_test(red { 'F' })
44
+ after_test(red('F'))
52
45
  end
53
46
 
54
47
  def error(suite, test, test_runner)
55
- after_test(red { 'E' })
48
+ after_test(red('E'))
56
49
  end
57
50
 
58
51
  def after_suites(suites, type)
59
52
  time = Time.now - runner.suites_start_time
60
- status_line = colored_for(suite_result) do
61
- "Finished %ss in %.6fs, %.4f tests/s, %.4f assertions/s." %
62
- [type, time, runner.test_count / time, runner.assertion_count / time]
63
- end
53
+ status_line = "Finished %ss in %.6fs, %.4f tests/s, %.4f assertions/s." %
54
+ [type, time, runner.test_count / time, runner.assertion_count / time]
64
55
 
65
56
  puts
66
57
  puts
67
- puts status_line
58
+ puts colored_for(suite_result, status_line)
68
59
 
69
60
  runner.test_results.each do |suite, tests|
70
61
  tests.each do |test, test_runner|
71
62
  if message = message_for(test_runner)
72
63
  puts
73
- print(colored_for(test_runner.result) { message })
64
+ print colored_for(test_runner.result, message)
74
65
  end
75
66
  end
76
67
  end
77
68
 
78
69
  puts
79
- puts(colored_for(suite_result) { status })
70
+ puts colored_for(suite_result, result_line)
80
71
  end
81
72
 
82
73
  private
83
74
 
84
- def green(&block)
85
- @color ? ANSI::Code.green(&block) : yield
75
+ def green(string)
76
+ @color ? ANSI::Code.green(string) : string
86
77
  end
87
78
 
88
- def yellow(&block)
89
- @color ? ANSI::Code.yellow(&block) : yield
79
+ def yellow(string)
80
+ @color ? ANSI::Code.yellow(string) : string
90
81
  end
91
82
 
92
- def red(&block)
93
- @color ? ANSI::Code.red(&block) : yield
83
+ def red(string)
84
+ @color ? ANSI::Code.red(string) : string
94
85
  end
95
86
 
96
- def colored_for(result, &block)
87
+ def colored_for(result, string)
97
88
  case result
98
- when :failure, :error; red(&block)
99
- when :skip; yellow(&block)
100
- else green(&block)
89
+ when :failure, :error; red(string)
90
+ when :skip; yellow(string)
91
+ else green(string)
101
92
  end
102
93
  end
103
94
 
104
95
  def suite_result
105
- if runner.failures > 0; :failure
106
- elsif runner.errors > 0; :error
107
- elsif runner.skips > 0; :skip
96
+ case
97
+ when runner.failures > 0; :failure
98
+ when runner.errors > 0; :error
99
+ when runner.skips > 0; :skip
108
100
  else :pass
109
101
  end
110
102
  end
@@ -141,12 +133,12 @@ module MiniTest
141
133
  end
142
134
  when :failure then "Failure:\n#{test}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
143
135
  when :error
144
- bt = @backtrace_filter.filter(test_runner.exception.backtrace).join "\n "
136
+ bt = filter_backtrace(test_runner.exception.backtrace).join "\n "
145
137
  "Error:\n#{test}(#{suite}):\n#{e.class}: #{e.message}\n #{bt}\n"
146
138
  end
147
139
  end
148
140
 
149
- def status
141
+ def result_line
150
142
  '%d tests, %d assertions, %d failures, %d errors, %d skips' %
151
143
  [runner.test_count, runner.assertion_count, runner.failures, runner.errors, runner.skips]
152
144
  end
@@ -1,4 +1,4 @@
1
- require 'ansi'
1
+ require 'ansi/code'
2
2
  require 'builder'
3
3
  require 'fileutils'
4
4
  module MiniTest
@@ -12,8 +12,7 @@ module MiniTest
12
12
  class JUnitReporter
13
13
  include Reporter
14
14
 
15
- def initialize(reports_dir = "test/reports", backtrace_filter = BacktraceFilter.default_filter)
16
- @backtrace_filter = backtrace_filter
15
+ def initialize(reports_dir = "test/reports")
17
16
  @reports_path = File.join(Dir.getwd, reports_dir)
18
17
  puts "Emptying #{@reports_path}"
19
18
  FileUtils.remove_dir(@reports_path) if File.exists?(@reports_path)
@@ -74,7 +73,7 @@ module MiniTest
74
73
  when :skip then "Skipped:\n#{test}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
75
74
  when :failure then "Failure:\n#{test}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
76
75
  when :error
77
- bt = @backtrace_filter.filter(test_runner.exception.backtrace).join "\n "
76
+ bt = filter_backtrace(test_runner.exception.backtrace).join "\n "
78
77
  "Error:\n#{test}(#{suite}):\n#{e.class}: #{e.message}\n #{bt}\n"
79
78
  end
80
79
  end
@@ -1,4 +1,4 @@
1
- require 'ansi'
1
+ require 'ansi/code'
2
2
  require 'powerbar'
3
3
 
4
4
  module MiniTest
@@ -17,14 +17,7 @@ module MiniTest
17
17
  INFO_PADDING = 2
18
18
 
19
19
  def initialize(options = {})
20
- if options.is_a?(Hash)
21
- @backtrace_filter = options.fetch(:backtrace_filter, BacktraceFilter.default_filter)
22
- @detailed_skip = options.fetch(:detailed_skip, true)
23
- else
24
- warn "Please use :backtrace_filter => filter instead of passing in the filter directly."
25
- @backtrace_filter = options
26
- @detailed_skip = true
27
- end
20
+ @detailed_skip = options.fetch(:detailed_skip, true)
28
21
 
29
22
  @progress = PowerBar.new(:msg => "0/#{runner.test_count}")
30
23
  @progress.settings.tty.finite.output = lambda { |s| print(s) }
@@ -119,7 +112,7 @@ module MiniTest
119
112
  def print_info(e)
120
113
  e.message.each_line { |line| puts pad(line) }
121
114
 
122
- trace = @backtrace_filter.filter(e.backtrace)
115
+ trace = filter_backtrace(e.backtrace)
123
116
  trace.each { |line| puts pad(line) }
124
117
  end
125
118
 
@@ -1,4 +1,4 @@
1
- require 'ansi'
1
+ require 'ansi/code'
2
2
 
3
3
  module MiniTest
4
4
  module Reporters
@@ -8,10 +8,6 @@ module MiniTest
8
8
 
9
9
  INFO_PADDING = 2
10
10
 
11
- def initialize(backtrace_filter = BacktraceFilter.default_filter)
12
- @backtrace_filter = backtrace_filter
13
- end
14
-
15
11
  def before_suites(suites, type)
16
12
  puts 'Started'
17
13
  puts
@@ -61,7 +57,7 @@ module MiniTest
61
57
  def print_info(e)
62
58
  e.message.each_line { |line| puts pad(line) }
63
59
 
64
- trace = @backtrace_filter.filter(e.backtrace)
60
+ trace = filter_backtrace(e.backtrace)
65
61
  trace.each { |line| puts pad(line) }
66
62
  end
67
63
 
@@ -1,7 +1,7 @@
1
1
  # Test results reporter for RubyMine IDE (http://www.jetbrains.com/ruby/) and
2
2
  # TeamCity(http://www.jetbrains.com/teamcity/) Continuous Integration Server
3
3
 
4
- require "ansi"
4
+ require 'ansi/code'
5
5
  begin
6
6
  require 'teamcity/runner_common'
7
7
  require 'teamcity/utils/service_message_factory'
@@ -1,4 +1,4 @@
1
- require 'ansi'
1
+ require 'ansi/code'
2
2
 
3
3
  module MiniTest
4
4
  module Reporters
@@ -17,10 +17,6 @@ module MiniTest
17
17
  MARK_SIZE = 5
18
18
  INFO_PADDING = 8
19
19
 
20
- def initialize(backtrace_filter = BacktraceFilter.default_filter)
21
- @backtrace_filter = backtrace_filter
22
- end
23
-
24
20
  def before_suites(suites, type)
25
21
  puts 'Started'
26
22
  puts
@@ -86,7 +82,7 @@ module MiniTest
86
82
  def print_info(e)
87
83
  e.message.each_line { |line| puts pad(line, INFO_PADDING) }
88
84
 
89
- trace = @backtrace_filter.filter(e.backtrace)
85
+ trace = filter_backtrace(e.backtrace)
90
86
  trace.each { |line| puts pad(line, INFO_PADDING) }
91
87
  end
92
88
 
@@ -1,5 +1,5 @@
1
1
  module MiniTest
2
2
  module Reporters
3
- VERSION = "0.11.0"
3
+ VERSION = "0.12.0"
4
4
  end
5
5
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = 'minitest-reporters'
16
16
 
17
- s.add_dependency 'minitest', '>= 2.12', '< 4.0'
17
+ s.add_dependency 'minitest', '>= 2.12', '< 5.0'
18
18
  s.add_dependency 'ansi'
19
19
  s.add_dependency 'powerbar'
20
20
  s.add_dependency 'builder'
@@ -1,10 +1,10 @@
1
1
  require_relative "../../test_helper"
2
2
 
3
3
  module MiniTestReportersTest
4
- class BacktraceFilterTest < TestCase
4
+ class ExtensibleBacktraceFilterTest < TestCase
5
5
  def setup
6
- @default_filter = MiniTest::BacktraceFilter.default_filter
7
- @filter = MiniTest::BacktraceFilter.new
6
+ @default_filter = MiniTest::ExtensibleBacktraceFilter.default_filter
7
+ @filter = MiniTest::ExtensibleBacktraceFilter.new
8
8
  @backtrace = ["foo", "bar", "baz"]
9
9
  end
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-reporters
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-17 00:00:00.000000000 Z
12
+ date: 2012-10-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '2.12'
22
22
  - - <
23
23
  - !ruby/object:Gem::Version
24
- version: '4.0'
24
+ version: '5.0'
25
25
  type: :runtime
26
26
  prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '2.12'
33
33
  - - <
34
34
  - !ruby/object:Gem::Version
35
- version: '4.0'
35
+ version: '5.0'
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: ansi
38
38
  requirement: !ruby/object:Gem::Requirement
@@ -143,8 +143,8 @@ files:
143
143
  - LICENSE
144
144
  - README.md
145
145
  - Rakefile
146
- - lib/minitest/backtrace_filter.rb
147
146
  - lib/minitest/before_test_hook.rb
147
+ - lib/minitest/extensible_backtrace_filter.rb
148
148
  - lib/minitest/reporter.rb
149
149
  - lib/minitest/reporter_runner.rb
150
150
  - lib/minitest/reporters.rb
@@ -161,7 +161,7 @@ files:
161
161
  - test/gallery/bad_test.rb
162
162
  - test/gallery/good_test.rb
163
163
  - test/test_helper.rb
164
- - test/unit/minitest/backtrace_filter_test.rb
164
+ - test/unit/minitest/extensible_backtrace_filter_test.rb
165
165
  - test/unit/minitest/reporter_test.rb
166
166
  - test/unit/minitest/reporters_test.rb
167
167
  homepage: https://github.com/CapnKernul/minitest-reporters
@@ -192,7 +192,7 @@ test_files:
192
192
  - test/gallery/bad_test.rb
193
193
  - test/gallery/good_test.rb
194
194
  - test/test_helper.rb
195
- - test/unit/minitest/backtrace_filter_test.rb
195
+ - test/unit/minitest/extensible_backtrace_filter_test.rb
196
196
  - test/unit/minitest/reporter_test.rb
197
197
  - test/unit/minitest/reporters_test.rb
198
198
  has_rdoc: