minitest-reporters 1.3.0 → 1.3.1.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +27 -27
  3. data/.ruby-gemset +1 -1
  4. data/.travis.yml +10 -10
  5. data/.yardopts +5 -5
  6. data/CHANGELOG.md +58 -54
  7. data/Gemfile +2 -2
  8. data/LICENSE +19 -19
  9. data/README.md +134 -134
  10. data/Rakefile +60 -60
  11. data/lib/minitest/extensible_backtrace_filter.rb +67 -67
  12. data/lib/minitest/minitest_reporter_plugin.rb +75 -75
  13. data/lib/minitest/old_activesupport_fix.rb +24 -24
  14. data/lib/minitest/relative_position.rb +26 -26
  15. data/lib/minitest/reporters.rb +91 -91
  16. data/lib/minitest/reporters/ansi.rb +31 -31
  17. data/lib/minitest/reporters/base_reporter.rb +119 -117
  18. data/lib/minitest/reporters/default_reporter.rb +228 -228
  19. data/lib/minitest/reporters/html_reporter.rb +221 -221
  20. data/lib/minitest/reporters/junit_reporter.rb +158 -158
  21. data/lib/minitest/reporters/mean_time_reporter.rb +392 -392
  22. data/lib/minitest/reporters/progress_reporter.rb +96 -96
  23. data/lib/minitest/reporters/ruby_mate_reporter.rb +54 -54
  24. data/lib/minitest/reporters/rubymine_reporter.rb +117 -117
  25. data/lib/minitest/reporters/spec_reporter.rb +61 -61
  26. data/lib/minitest/reporters/version.rb +5 -5
  27. data/lib/minitest/templates/index.html.erb +82 -82
  28. data/minitest-reporters.gemspec +31 -31
  29. data/test/fixtures/junit_filename_bug_example_test.rb +21 -21
  30. data/test/fixtures/mean_time_test.rb +8 -8
  31. data/test/fixtures/progress_detailed_skip_test.rb +8 -8
  32. data/test/fixtures/progress_test.rb +8 -8
  33. data/test/fixtures/sample_test.rb +15 -15
  34. data/test/fixtures/spec_test.rb +13 -13
  35. data/test/gallery/bad_test.rb +25 -25
  36. data/test/gallery/good_test.rb +14 -14
  37. data/test/integration/reporters/junit_reporter_test.rb +12 -12
  38. data/test/integration/reporters/mean_time_reporter_test.rb +7 -7
  39. data/test/integration/reporters/progress_reporter_test.rb +34 -34
  40. data/test/test_helper.rb +22 -22
  41. data/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -42
  42. data/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -152
  43. data/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -14
  44. data/test/unit/minitest/reporters_test.rb +65 -65
  45. data/test/unit/minitest/spec_reporter_test.rb +41 -41
  46. metadata +4 -4
data/Rakefile CHANGED
@@ -1,60 +1,60 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
3
-
4
- task :default => :test
5
- Rake::TestTask.new do |t|
6
- t.pattern = "test/{unit,integration}/**/*_test.rb"
7
- t.verbose = true
8
- end
9
-
10
- rubymine_home = [
11
- ENV["RUBYMINE_HOME"],
12
- "../rubymine-contrib/ruby-testing/src/rb/testing/patch/common",
13
- "/Applications/RubyMine.app/Contents/rb/testing/patch/common",
14
- ].compact.detect { |d| Dir.exist?(d) }
15
-
16
- Rake::TestTask.new("test:gallery") do |t|
17
- t.pattern = "test/gallery/**/*_test.rb"
18
- t.verbose = true
19
- t.libs << rubymine_home
20
- end
21
-
22
- # - RubyMineReporter must be tested separately inside of RubyMine
23
- # - JUnitReporter normally writes to `test/reports` instead of stdout
24
- task :gallery do
25
- unless rubymine_home
26
- warn "To see RubyMineReporter supply RUBYMINE_HOME= or git clone git://git.jetbrains.org/idea/contrib.git ../rubymine-contrib"
27
- exit 1
28
- end
29
-
30
- [
31
- "Pride",
32
- "DefaultReporter",
33
- "JUnitReporter",
34
- "ProgressReporter",
35
- "RubyMateReporter",
36
- "SpecReporter",
37
- "RubyMineReporter",
38
- "HtmlReporter",
39
- "MeanTimeReporter",
40
- ].each do |reporter|
41
- puts
42
- puts "-" * 72
43
- puts "Running gallery tests using #{reporter}..."
44
- puts "-" * 72
45
- puts
46
-
47
- sh "rake test:gallery REPORTER=#{reporter}" do
48
- # Ignore failures. They're expected when you are running the gallery
49
- # test suite.
50
- end
51
- sh "cat test/reports/*" if reporter == "JUnitReporter"
52
- end
53
- end
54
-
55
- task :reset_statistics do
56
- require 'minitest/reporters/mean_time_reporter'
57
- Minitest::Reporters::MeanTimeReporter.reset_statistics!
58
- puts "The mean time reporter statistics have been reset."
59
- exit 0
60
- end
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ task :default => :test
5
+ Rake::TestTask.new do |t|
6
+ t.pattern = "test/{unit,integration}/**/*_test.rb"
7
+ t.verbose = true
8
+ end
9
+
10
+ rubymine_home = [
11
+ ENV["RUBYMINE_HOME"],
12
+ "../rubymine-contrib/ruby-testing/src/rb/testing/patch/common",
13
+ "/Applications/RubyMine.app/Contents/rb/testing/patch/common",
14
+ ].compact.detect { |d| Dir.exist?(d) }
15
+
16
+ Rake::TestTask.new("test:gallery") do |t|
17
+ t.pattern = "test/gallery/**/*_test.rb"
18
+ t.verbose = true
19
+ t.libs << rubymine_home
20
+ end
21
+
22
+ # - RubyMineReporter must be tested separately inside of RubyMine
23
+ # - JUnitReporter normally writes to `test/reports` instead of stdout
24
+ task :gallery do
25
+ unless rubymine_home
26
+ warn "To see RubyMineReporter supply RUBYMINE_HOME= or git clone git://git.jetbrains.org/idea/contrib.git ../rubymine-contrib"
27
+ exit 1
28
+ end
29
+
30
+ [
31
+ "Pride",
32
+ "DefaultReporter",
33
+ "JUnitReporter",
34
+ "ProgressReporter",
35
+ "RubyMateReporter",
36
+ "SpecReporter",
37
+ "RubyMineReporter",
38
+ "HtmlReporter",
39
+ "MeanTimeReporter",
40
+ ].each do |reporter|
41
+ puts
42
+ puts "-" * 72
43
+ puts "Running gallery tests using #{reporter}..."
44
+ puts "-" * 72
45
+ puts
46
+
47
+ sh "rake test:gallery REPORTER=#{reporter}" do
48
+ # Ignore failures. They're expected when you are running the gallery
49
+ # test suite.
50
+ end
51
+ sh "cat test/reports/*" if reporter == "JUnitReporter"
52
+ end
53
+ end
54
+
55
+ task :reset_statistics do
56
+ require 'minitest/reporters/mean_time_reporter'
57
+ Minitest::Reporters::MeanTimeReporter.reset_statistics!
58
+ puts "The mean time reporter statistics have been reset."
59
+ exit 0
60
+ end
@@ -1,67 +1,67 @@
1
- module Minitest
2
- # Filters backtraces of exceptions that may arise when running tests.
3
- class ExtensibleBacktraceFilter
4
- # Returns the default filter.
5
- #
6
- # The default filter will filter out all Minitest and minitest-reporters
7
- # lines.
8
- #
9
- # @return [Minitest::ExtensibleBacktraceFilter]
10
- def self.default_filter
11
- unless defined? @default_filter
12
- filter = self.new
13
- filter.add_filter(/lib\/minitest/)
14
- @default_filter = filter
15
- end
16
-
17
- @default_filter
18
- end
19
-
20
- # Creates a new backtrace filter.
21
- def initialize
22
- @filters = []
23
- end
24
-
25
- # Adds a filter.
26
- #
27
- # @param [Regex] regex the filter
28
- def add_filter(regex)
29
- @filters << regex
30
- end
31
-
32
- # Determines if the string would be filtered.
33
- #
34
- # @param [String] str
35
- # @return [Boolean]
36
- def filters?(str)
37
- @filters.any? { |filter| str =~ filter }
38
- end
39
-
40
- # Filters a backtrace.
41
- #
42
- # This will add new lines to the new backtrace until a filtered line is
43
- # encountered. If there were lines added to the new backtrace, it returns
44
- # those lines. However, if the first line in the backtrace was filtered,
45
- # resulting in an empty backtrace, it returns all lines that would have
46
- # been unfiltered. If that in turn does not contain any lines, it returns
47
- # the original backtrace.
48
- #
49
- # @param [Array] backtrace the backtrace to filter
50
- # @return [Array] the filtered backtrace
51
- # @note This logic is based off of Minitest's #filter_backtrace.
52
- def filter(backtrace)
53
- result = []
54
- return result unless backtrace
55
-
56
- backtrace.each do |line|
57
- break if filters?(line)
58
- result << line
59
- end
60
-
61
- result = backtrace.reject { |line| filters?(line) } if result.empty?
62
- result = backtrace.dup if result.empty?
63
-
64
- result
65
- end
66
- end
67
- end
1
+ module Minitest
2
+ # Filters backtraces of exceptions that may arise when running tests.
3
+ class ExtensibleBacktraceFilter
4
+ # Returns the default filter.
5
+ #
6
+ # The default filter will filter out all Minitest and minitest-reporters
7
+ # lines.
8
+ #
9
+ # @return [Minitest::ExtensibleBacktraceFilter]
10
+ def self.default_filter
11
+ unless defined? @default_filter
12
+ filter = self.new
13
+ filter.add_filter(/lib\/minitest/)
14
+ @default_filter = filter
15
+ end
16
+
17
+ @default_filter
18
+ end
19
+
20
+ # Creates a new backtrace filter.
21
+ def initialize
22
+ @filters = []
23
+ end
24
+
25
+ # Adds a filter.
26
+ #
27
+ # @param [Regex] regex the filter
28
+ def add_filter(regex)
29
+ @filters << regex
30
+ end
31
+
32
+ # Determines if the string would be filtered.
33
+ #
34
+ # @param [String] str
35
+ # @return [Boolean]
36
+ def filters?(str)
37
+ @filters.any? { |filter| str =~ filter }
38
+ end
39
+
40
+ # Filters a backtrace.
41
+ #
42
+ # This will add new lines to the new backtrace until a filtered line is
43
+ # encountered. If there were lines added to the new backtrace, it returns
44
+ # those lines. However, if the first line in the backtrace was filtered,
45
+ # resulting in an empty backtrace, it returns all lines that would have
46
+ # been unfiltered. If that in turn does not contain any lines, it returns
47
+ # the original backtrace.
48
+ #
49
+ # @param [Array] backtrace the backtrace to filter
50
+ # @return [Array] the filtered backtrace
51
+ # @note This logic is based off of Minitest's #filter_backtrace.
52
+ def filter(backtrace)
53
+ result = []
54
+ return result unless backtrace
55
+
56
+ backtrace.each do |line|
57
+ break if filters?(line)
58
+ result << line
59
+ end
60
+
61
+ result = backtrace.reject { |line| filters?(line) } if result.empty?
62
+ result = backtrace.dup if result.empty?
63
+
64
+ result
65
+ end
66
+ end
67
+ end
@@ -1,75 +1,75 @@
1
- module Minitest
2
- module Reporters
3
- class DelegateReporter < Minitest::AbstractReporter
4
- def initialize(reporters, options = {})
5
- @reporters = reporters
6
- @options = options
7
- @all_reporters = nil
8
- end
9
-
10
- def io
11
- all_reporters.first.io unless all_reporters.empty?
12
- @options[:io]
13
- end
14
-
15
- def start
16
- all_reporters.each(&:start)
17
- end
18
-
19
- def record(result)
20
- all_reporters.each do |reporter|
21
- reporter.record result
22
- end
23
- end
24
-
25
- def report
26
- all_reporters.each(&:report)
27
- end
28
-
29
- def passed?
30
- all_reporters.all?(&:passed?)
31
- end
32
-
33
- private
34
- # stolen from minitest self.run
35
- def total_count(options)
36
- filter = options[:filter] || '/./'
37
- filter = Regexp.new $1 if filter =~ /\/(.*)\//
38
-
39
- Minitest::Runnable.runnables.map { |runnable|
40
- runnable.runnable_methods.find_all { |m|
41
- filter === m || filter === "#{runnable}##{m}"
42
- }.size
43
- }.inject(:+)
44
- end
45
-
46
- def all_reporters
47
- @all_reporters ||= init_all_reporters
48
- end
49
-
50
- def init_all_reporters
51
- return @reporters unless defined?(Minitest::Reporters.reporters) && Minitest::Reporters.reporters
52
- (Minitest::Reporters.reporters + guard_reporter(@reporters)).each do |reporter|
53
- reporter.io = @options[:io]
54
- if reporter.respond_to?(:add_defaults)
55
- reporter.add_defaults(@options.merge(:total_count => total_count(@options)))
56
- end
57
- end
58
- end
59
-
60
- def guard_reporter(reporters)
61
- guards = Array(reporters.detect { |r| r.class.name == "Guard::Minitest::Reporter" })
62
- return guards unless ENV['RM_INFO']
63
-
64
- warn 'RM_INFO is set thus guard reporter has been dropped' unless guards.empty?
65
- []
66
- end
67
- end
68
- end
69
-
70
- class << self
71
- def plugin_minitest_reporter_init(options)
72
- reporter.reporters = [Minitest::Reporters::DelegateReporter.new(reporter.reporters, options)]
73
- end
74
- end
75
- end
1
+ module Minitest
2
+ module Reporters
3
+ class DelegateReporter < Minitest::AbstractReporter
4
+ def initialize(reporters, options = {})
5
+ @reporters = reporters
6
+ @options = options
7
+ @all_reporters = nil
8
+ end
9
+
10
+ def io
11
+ all_reporters.first.io unless all_reporters.empty?
12
+ @options[:io]
13
+ end
14
+
15
+ def start
16
+ all_reporters.each(&:start)
17
+ end
18
+
19
+ def record(result)
20
+ all_reporters.each do |reporter|
21
+ reporter.record result
22
+ end
23
+ end
24
+
25
+ def report
26
+ all_reporters.each(&:report)
27
+ end
28
+
29
+ def passed?
30
+ all_reporters.all?(&:passed?)
31
+ end
32
+
33
+ private
34
+ # stolen from minitest self.run
35
+ def total_count(options)
36
+ filter = options[:filter] || '/./'
37
+ filter = Regexp.new $1 if filter =~ /\/(.*)\//
38
+
39
+ Minitest::Runnable.runnables.map { |runnable|
40
+ runnable.runnable_methods.find_all { |m|
41
+ filter === m || filter === "#{runnable}##{m}"
42
+ }.size
43
+ }.inject(:+)
44
+ end
45
+
46
+ def all_reporters
47
+ @all_reporters ||= init_all_reporters
48
+ end
49
+
50
+ def init_all_reporters
51
+ return @reporters unless defined?(Minitest::Reporters.reporters) && Minitest::Reporters.reporters
52
+ (Minitest::Reporters.reporters + guard_reporter(@reporters)).each do |reporter|
53
+ reporter.io = @options[:io]
54
+ if reporter.respond_to?(:add_defaults)
55
+ reporter.add_defaults(@options.merge(:total_count => total_count(@options)))
56
+ end
57
+ end
58
+ end
59
+
60
+ def guard_reporter(reporters)
61
+ guards = Array(reporters.detect { |r| r.class.name == "Guard::Minitest::Reporter" })
62
+ return guards unless ENV['RM_INFO']
63
+
64
+ warn 'RM_INFO is set thus guard reporter has been dropped' unless guards.empty?
65
+ []
66
+ end
67
+ end
68
+ end
69
+
70
+ class << self
71
+ def plugin_minitest_reporter_init(options)
72
+ reporter.reporters = [Minitest::Reporters::DelegateReporter.new(reporter.reporters, options)]
73
+ end
74
+ end
75
+ end
@@ -1,24 +1,24 @@
1
- require "active_support/testing/setup_and_teardown"
2
-
3
- module ActiveSupport
4
- module Testing
5
- module SetupAndTeardown
6
- if defined?(ForMinitest)
7
- ForMiniTest = ForMinitest
8
- end
9
- module ForMiniTest
10
- remove_method :run
11
-
12
- def before_setup
13
- super
14
- run_callbacks :setup
15
- end
16
-
17
- def after_teardown
18
- run_callbacks :teardown
19
- super
20
- end
21
- end
22
- end
23
- end
24
- end
1
+ require "active_support/testing/setup_and_teardown"
2
+
3
+ module ActiveSupport
4
+ module Testing
5
+ module SetupAndTeardown
6
+ if defined?(ForMinitest)
7
+ ForMiniTest = ForMinitest
8
+ end
9
+ module ForMiniTest
10
+ remove_method :run
11
+
12
+ def before_setup
13
+ super
14
+ run_callbacks :setup
15
+ end
16
+
17
+ def after_teardown
18
+ run_callbacks :teardown
19
+ super
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end