minitest-reporters 1.3.2 → 1.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6df7029f8bdc85161a699f171c63188294697f30c9f30d2cc5e1c037327f89b6
4
- data.tar.gz: 33152f2bb9e62f0fc82b75ecfbf5b8828841520bee19c07472c87cb42ed5d013
3
+ metadata.gz: fd189c42b4c7adcec48a0ce3db5a5abe59dd6d766ef6b9d69b7bca10a305a8ba
4
+ data.tar.gz: 63c9745d9d6a1de4492434dea58ecf37b78ce3f5df2bdc0dc159915914dc2235
5
5
  SHA512:
6
- metadata.gz: e60635e176c44f1504139d257ea3e64f902e7af7776d5ff0d9f7609c3f615af69e3e8656ff90152dc5867efa78697e2360328b3d0933a40af3df5b14a55beb8a
7
- data.tar.gz: 877e5258ea73baaf4c1f9016bdc5f8d2b3aecc124ec6f69d760b6707d7e6e98da52e02a01b8989101511dd1d81235dd5d86e33e0b0acd65a7a1a92810c9940a2
6
+ metadata.gz: 676d1065ac7070eb24a1824f8fc914e243281538ad0c8c7c6db24cb5529e395e1992f685562f061628e50ee394d0ce47f09e1f54d9350034be2f3130765288a1
7
+ data.tar.gz: e6c1ecb07353173d26b3546af1591ec63d1684d3bb66c4740b3b52172ee8ec701e42a831cae19cd2d7263401d61b5e7d96bbbcbe5087b21dbbfb7fccb4410c0a
@@ -13,7 +13,7 @@ Lint:
13
13
 
14
14
  Metrics:
15
15
  Severity: refactor
16
- Enabled: true
16
+ Enabled: false
17
17
 
18
18
  Metrics/LineLength:
19
19
  Severity: convention
@@ -36,15 +36,37 @@ Security:
36
36
 
37
37
  #todo: enable
38
38
  Style:
39
- Enabled: false
39
+ Enabled: true
40
40
 
41
41
  Style/FormatStringToken:
42
42
  Enabled: false
43
43
 
44
+ Style/IfUnlessModifier:
45
+ Enabled: false
46
+
44
47
  #todo: enable
45
48
  Style/StringLiterals:
46
49
  Enabled: false
47
50
 
51
+ Style/TrailingCommaInHashLiteral:
52
+ EnforcedStyleForMultiline: comma
53
+
54
+ #todo: enable
55
+ Style/HashSyntax:
56
+ Enabled: false
57
+
58
+ #todo: enable
59
+ Style/FormatString:
60
+ Enabled: false
61
+
62
+ #todo: enable
63
+ Style/ClassVars:
64
+ Enabled: false
65
+
66
+ #todo: enable
67
+ Style/Alias:
68
+ Enabled: false
69
+
48
70
  Style/Documentation:
49
71
  Enabled: false
50
72
 
@@ -1,4 +1,9 @@
1
- ### [dev](https://github.com/kern/minitest-reporters/compare/v1.3.2...master)
1
+ ### [dev](https://github.com/kern/minitest-reporters/compare/v1.3.3...master)
2
+
3
+ ### [1.3.3](https://github.com/kern/minitest-reporters/compare/v1.3.2...v1.3.3)
4
+
5
+ * fixed problem with default report paths for MeanTimeReporter [#269](https://github.com/kern/minitest-reporters/pull/269)
6
+ contributed by [duonoid](https://github.com/duonoid)
2
7
 
3
8
  ### [1.3.2](https://github.com/kern/minitest-reporters/compare/v1.3.2.beta2...v1.3.2)
4
9
 
@@ -28,10 +28,10 @@ module Minitest
28
28
 
29
29
  suite_changed = last_test.nil? || last_test.name != test.class.name
30
30
 
31
- if suite_changed
32
- after_suite(last_test) if last_test
33
- before_suite(test.class)
34
- end
31
+ return unless suite_changed
32
+
33
+ after_suite(last_test) if last_test
34
+ before_suite(test.class)
35
35
  end
36
36
 
37
37
  def record(test)
@@ -40,8 +40,7 @@ module Minitest
40
40
  end
41
41
 
42
42
  # called by our own after hooks
43
- def after_test(_test)
44
- end
43
+ def after_test(_test); end
45
44
 
46
45
  def report
47
46
  super
@@ -50,11 +49,9 @@ module Minitest
50
49
 
51
50
  protected
52
51
 
53
- def after_suite(test)
54
- end
52
+ def after_suite(test); end
55
53
 
56
- def before_suite(test)
57
- end
54
+ def before_suite(test); end
58
55
 
59
56
  def result(test)
60
57
  if test.error?
@@ -115,10 +112,10 @@ module Minitest
115
112
 
116
113
  # When e is a Minitest::UnexpectedError, the filtered backtrace is already part of the message printed out
117
114
  # by the previous line. In that case, and that case only, skip the backtrace output.
118
- unless e.is_a?(MiniTest::UnexpectedError)
119
- trace = filter_backtrace(e.backtrace)
120
- trace.each { |line| print_with_info_padding(line) }
121
- end
115
+ return if e.is_a?(MiniTest::UnexpectedError)
116
+
117
+ trace = filter_backtrace(e.backtrace)
118
+ trace.each { |line| print_with_info_padding(line) }
122
119
  end
123
120
  end
124
121
  end
@@ -62,7 +62,7 @@ module Minitest
62
62
  :erb_template => "#{File.dirname(__FILE__)}/../templates/index.html.erb",
63
63
  :reports_dir => 'test/html_reports',
64
64
  :mode => :safe,
65
- :output_filename => 'index.html'
65
+ :output_filename => 'index.html',
66
66
  }
67
67
 
68
68
  settings = defaults.merge(args)
@@ -124,8 +124,8 @@ module Minitest
124
124
  show_progress: true,
125
125
  show_all_runs: true,
126
126
  sort_column: :avg,
127
- previous_runs_filename: Dir.tmpdir + '/minitest_reporters_previous_run',
128
- report_filename: Dir.tmpdir + 'minitest_reporters_report'
127
+ previous_runs_filename: File.join(Dir.tmpdir, 'minitest_reporters_previous_run'),
128
+ report_filename: File.join(Dir.tmpdir, 'minitest_reporters_report'),
129
129
  }
130
130
  end
131
131
 
@@ -13,20 +13,20 @@ module Minitest
13
13
  include RelativePosition
14
14
  include ANSI::Code
15
15
 
16
- PROGRESS_MARK = '='
16
+ PROGRESS_MARK = '='.freeze
17
17
 
18
18
  def initialize(options = {})
19
19
  super
20
20
  @detailed_skip = options.fetch(:detailed_skip, true)
21
21
 
22
- @progress = ProgressBar.create({
22
+ @progress = ProgressBar.create(
23
23
  total: total_count,
24
24
  starting_at: count,
25
25
  progress_mark: green(PROGRESS_MARK),
26
26
  remainder_mark: ' ',
27
27
  format: options.fetch(:format, ' %C/%c: [%B] %p%% %a, %e'),
28
28
  autostart: false
29
- })
29
+ )
30
30
  end
31
31
 
32
32
  def start
@@ -1,5 +1,5 @@
1
1
  module Minitest
2
2
  module Reporters
3
- VERSION = '1.3.2'.freeze
3
+ VERSION = '1.3.3'.freeze
4
4
  end
5
5
  end
@@ -5,7 +5,7 @@ module MinitestReportersTest
5
5
  def test_all_failures_are_displayed
6
6
  fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
7
7
  test_filename = File.join(fixtures_directory, 'progress_test.rb')
8
- output = `ruby #{test_filename} 2>&1`
8
+ output = `#{ruby_executable} #{test_filename} 2>&1`
9
9
  assert_match 'ERROR["test_error"', output, 'Errors should be displayed'
10
10
  assert_match 'FAIL["test_failure"', output, 'Failures should be displayed'
11
11
  assert_match 'SKIP["test_skip', output, 'Skipped tests should be displayed'
@@ -13,7 +13,7 @@ module MinitestReportersTest
13
13
  def test_skipped_tests_are_not_displayed
14
14
  fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
15
15
  test_filename = File.join(fixtures_directory, 'progress_detailed_skip_test.rb')
16
- output = `ruby #{test_filename} 2>&1`
16
+ output = `#{ruby_executable} #{test_filename} 2>&1`
17
17
  assert_match 'ERROR["test_error"', output, 'Errors should be displayed'
18
18
  assert_match 'FAIL["test_failure"', output, 'Failures should be displayed'
19
19
  refute_match 'SKIP["test_skip', output, 'Skipped tests should not be displayed'
@@ -21,14 +21,20 @@ module MinitestReportersTest
21
21
  def test_progress_works_with_filter_and_specs
22
22
  fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
23
23
  test_filename = File.join(fixtures_directory, 'spec_test.rb')
24
- output = `ruby #{test_filename} -n /length/ 2>&1`
24
+ output = `#{ruby_executable} #{test_filename} -n /length/ 2>&1`
25
25
  refute_match '0 out of 0', output, 'Progress should not puts a warning'
26
26
  end
27
27
  def test_progress_works_with_strict_filter
28
28
  fixtures_directory = File.expand_path('../../../fixtures', __FILE__)
29
29
  test_filename = File.join(fixtures_directory, 'spec_test.rb')
30
- output = `ruby #{test_filename} -n /^test_0001_works$/ 2>&1`
30
+ output = `#{ruby_executable} #{test_filename} -n /^test_0001_works$/ 2>&1`
31
31
  refute_match '0 out of 0', output, 'Progress should not puts a warning'
32
32
  end
33
+
34
+ private
35
+
36
+ def ruby_executable
37
+ defined?(JRUBY_VERSION) ? 'jruby' : 'ruby'
38
+ end
33
39
  end
34
40
  end
@@ -1,10 +1,18 @@
1
1
  require_relative '../../test_helper'
2
+ require "ostruct"
2
3
 
3
4
  module MinitestReportersTest
4
5
  class MeanTimeReporterUnitTest < Minitest::Test
5
6
  def setup
7
+ @test_data = []
8
+ @test_data << { name: 'MIDDLE', prev_time: 5.0, cur_time: 5.0 }
9
+ @test_data << { name: 'MIN_FAST', prev_time: 0.5, cur_time: 3.5 }
10
+ @test_data << { name: 'MIN_SLOW', prev_time: 10.5, cur_time: 10.5 }
11
+ @test_data << { name: 'MAX_FAST', prev_time: 1.2, cur_time: 0.9 }
12
+ @test_data << { name: 'MAX_SLOW', prev_time: 16.3, cur_time: 6.3 }
13
+ @test_data << { name: 'AVG_FAST', prev_time: 1.3, cur_time: 0.65 }
14
+ @test_data << { name: 'AVG_SLOW', prev_time: 10.2, cur_time: 14.2 }
6
15
  configure_report_paths
7
- previous_test_run
8
16
  end
9
17
 
10
18
  def teardown
@@ -12,8 +20,17 @@ module MinitestReportersTest
12
20
  File.delete(@report_file_path) if File.exist?(@report_file_path)
13
21
  end
14
22
 
23
+ def test_defaults
24
+ subject = Minitest::Reporters::MeanTimeReporter.new.send(:defaults)
25
+
26
+ expected_prefix = "#{Dir.tmpdir}#{File::Separator}"
27
+ assert_match expected_prefix, subject[:previous_runs_filename]
28
+ assert_match expected_prefix, subject[:report_filename]
29
+ end
30
+
15
31
  def test_sorts_avg_numerically
16
- report_output = generate_report(:avg)
32
+ prev_output = generate_report(:avg, :prev_time)
33
+ report_output = generate_report(:avg, :cur_time)
17
34
 
18
35
  expected_order = [
19
36
  'AVG_SLOW',
@@ -24,11 +41,12 @@ module MinitestReportersTest
24
41
  'MAX_FAST',
25
42
  'AVG_FAST'
26
43
  ]
27
- verify_result_order(report_output, expected_order)
44
+ verify_result_order(report_output, expected_order, prev_output)
28
45
  end
29
46
 
30
47
  def test_sorts_min_numerically
31
- report_output = generate_report(:min)
48
+ prev_output = generate_report(:min, :prev_time)
49
+ report_output = generate_report(:min, :cur_time)
32
50
 
33
51
  expected_order = [
34
52
  'MIN_SLOW',
@@ -39,11 +57,12 @@ module MinitestReportersTest
39
57
  'AVG_FAST',
40
58
  'MIN_FAST'
41
59
  ]
42
- verify_result_order(report_output, expected_order)
60
+ verify_result_order(report_output, expected_order, prev_output)
43
61
  end
44
62
 
45
63
  def test_sorts_max_numerically
46
- report_output = generate_report(:max)
64
+ prev_output = generate_report(:max, :prev_time)
65
+ report_output = generate_report(:max, :cur_time)
47
66
 
48
67
  expected_order = [
49
68
  'MAX_SLOW',
@@ -54,11 +73,12 @@ module MinitestReportersTest
54
73
  'AVG_FAST',
55
74
  'MAX_FAST'
56
75
  ]
57
- verify_result_order(report_output, expected_order)
76
+ verify_result_order(report_output, expected_order, prev_output)
58
77
  end
59
78
 
60
79
  def test_sorts_last_numerically
61
- report_output = generate_report(:last)
80
+ prev_output = generate_report(:last, :prev_time)
81
+ report_output = generate_report(:last, :cur_time)
62
82
 
63
83
  expected_order = [
64
84
  'AVG_SLOW',
@@ -69,7 +89,7 @@ module MinitestReportersTest
69
89
  'MAX_FAST',
70
90
  'AVG_FAST'
71
91
  ]
72
- verify_result_order(report_output, expected_order)
92
+ verify_result_order(report_output, expected_order, prev_output)
73
93
  end
74
94
 
75
95
  private
@@ -80,27 +100,9 @@ module MinitestReportersTest
80
100
  Minitest::Reporters.stub(:clock_time, base_clock_time - run_time) do
81
101
  @reporter.before_suite(test_suite)
82
102
  end
83
- @reporter.after_suite(test_suite)
84
- end
85
-
86
- def previous_test_run
87
- @reporter = Minitest::Reporters::MeanTimeReporter.new(
88
- previous_runs_filename: @previous_run_path,
89
- report_filename: @report_file_path
90
- )
91
-
92
- simulate_suite_runtime('MIDDLE', 5.0)
93
- simulate_suite_runtime('MIN_FAST', 0.5)
94
- simulate_suite_runtime('MIN_SLOW', 10.5)
95
- simulate_suite_runtime('MAX_FAST', 1.2)
96
- simulate_suite_runtime('MAX_SLOW', 16.3)
97
- simulate_suite_runtime('AVG_FAST', 1.3)
98
- simulate_suite_runtime('AVG_SLOW', 10.2)
99
- @reporter.tests << Minitest::Test.new('Final')
100
- # Generate a "previous" run
101
- @reporter.io = StringIO.new
102
- @reporter.start
103
- @reporter.report
103
+ Minitest::Reporters.stub(:clock_time, base_clock_time) do
104
+ @reporter.after_suite(test_suite)
105
+ end
104
106
  end
105
107
 
106
108
  def configure_report_paths
@@ -114,20 +116,14 @@ module MinitestReportersTest
114
116
  report_file.delete
115
117
  end
116
118
 
117
- def generate_report(sort_column)
119
+ def generate_report(sort_column, time_name)
118
120
  # Reset the reporter for the test run
119
121
  @reporter = Minitest::Reporters::MeanTimeReporter.new(
120
122
  previous_runs_filename: @previous_run_path,
121
123
  report_filename: @report_file_path,
122
124
  sort_column: sort_column
123
125
  )
124
- simulate_suite_runtime('MIDDLE', 5.0)
125
- simulate_suite_runtime('MIN_FAST', 3.5)
126
- simulate_suite_runtime('MIN_SLOW', 10.5)
127
- simulate_suite_runtime('MAX_FAST', 0.9)
128
- simulate_suite_runtime('MAX_SLOW', 6.3)
129
- simulate_suite_runtime('AVG_FAST', 0.65)
130
- simulate_suite_runtime('AVG_SLOW', 14.2)
126
+ @test_data.each { |hash| simulate_suite_runtime(hash[:name], hash[time_name])}
131
127
  @reporter.tests << Minitest::Test.new('Final')
132
128
 
133
129
  report_output = StringIO.new
@@ -137,16 +133,22 @@ module MinitestReportersTest
137
133
  report_output
138
134
  end
139
135
 
140
- def verify_result_order(report_output, expected_order)
141
- report_output.rewind
142
- test_lines = report_output.read.split("\n")
143
- test_lines.select! { |line| line.start_with?('Avg:') }
136
+ def verify_result_order(report_output, expected_order, prev_output)
137
+ prev_lines = extract_test_lines(prev_output)
138
+ test_lines = extract_test_lines(report_output)
144
139
 
145
- # Exclude the final placeholder 0 second test from assertions
146
- test_lines.reject! { |line| line.end_with?('Minitest::Test') }
147
140
  actual_order = test_lines.map { |line| line.gsub(/.*Description: /, '') }
148
141
 
149
- assert_equal(expected_order, actual_order, "\n#{test_lines.join("\n")}")
142
+ assert_equal(expected_order, actual_order, "\nCurrent report:\n#{test_lines.join("\n")}\n\nPrevious report:\n#{prev_lines.join("\n")}")
143
+ end
144
+
145
+ def extract_test_lines(report_output)
146
+ report_output.rewind
147
+ test_lines = report_output.read.split("\n")
148
+ test_lines.select! {|line| line.start_with?('Avg:')}
149
+ # Exclude the final placeholder 0 second test from assertions
150
+ test_lines.reject! {|line| line.end_with?('Minitest::Test')}
151
+ test_lines
150
152
  end
151
153
  end
152
154
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-reporters
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kern
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-17 00:00:00.000000000 Z
11
+ date: 2018-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest