minitest-heat 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/lib/minitest/heat/issue.rb +2 -2
- data/lib/minitest/heat/output.rb +65 -58
- data/lib/minitest/heat/version.rb +1 -1
- data/lib/minitest/heat_reporter.rb +8 -2
- data/minitest-heat.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc3d70999fca25317d7ff7a96b67cd2c6ee6f59970054b0eaec88c051581b855
|
4
|
+
data.tar.gz: 1197c05fe06b12737b2c73c27d7266e986fcae22cd3957b3e64cd14e2e70295f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 207f670e0e27dedb872c8251e3890043955c60b6dd6e7dbafce1ba11fd9de5dde20ecf902ac0afd7fa5338d846afa9bc0c2f498df1ca5cdf83b964865792075f
|
7
|
+
data.tar.gz: c7d3219eb7c7d357a6bdeb82695356f2b56f1bc0f617ed9a9719c3c8227ca9b9bbf0c4929c14d75eed60ce6eade8552f693ad689d6b71c057fc08015a3d38828
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
minitest-heat (0.0.
|
4
|
+
minitest-heat (0.0.3)
|
5
5
|
minitest
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
10
|
coderay (1.1.3)
|
11
|
+
dead_end (1.1.7)
|
11
12
|
docile (1.4.0)
|
12
13
|
method_source (1.0.0)
|
13
14
|
minitest (5.14.4)
|
@@ -26,6 +27,7 @@ PLATFORMS
|
|
26
27
|
ruby
|
27
28
|
|
28
29
|
DEPENDENCIES
|
30
|
+
dead_end
|
29
31
|
minitest (~> 5.0)
|
30
32
|
minitest-heat!
|
31
33
|
pry
|
data/lib/minitest/heat/issue.rb
CHANGED
@@ -100,7 +100,7 @@ module Minitest
|
|
100
100
|
# When the exception came out of the test itself, that's a different kind of exception
|
101
101
|
# that really only indicates there's a problem with the code in the test. It's kind of
|
102
102
|
# between an error and a test.
|
103
|
-
'
|
103
|
+
'Test Error'
|
104
104
|
elsif error? || !passed?
|
105
105
|
failure.result_label
|
106
106
|
elsif slow?
|
@@ -116,7 +116,7 @@ module Minitest
|
|
116
116
|
when :error then 'E'
|
117
117
|
when :skipped then 'S'
|
118
118
|
when :failure then 'F'
|
119
|
-
when :slow then '
|
119
|
+
when :slow then '_'
|
120
120
|
else '.'
|
121
121
|
end
|
122
122
|
end
|
data/lib/minitest/heat/output.rb
CHANGED
@@ -4,87 +4,96 @@ module Minitest
|
|
4
4
|
module Heat
|
5
5
|
# Friendly API for printing nicely-formatted output to the console
|
6
6
|
class Output
|
7
|
-
|
8
|
-
STYLES = {
|
9
|
-
error: %i[bold red],
|
10
|
-
broken: %i[bold red],
|
11
|
-
failure: %i[default red],
|
12
|
-
skipped: %i[bold yellow],
|
13
|
-
success: %i[default green],
|
14
|
-
slow: %i[bold green],
|
15
|
-
source: %i[italic default],
|
16
|
-
bold: %i[bold default],
|
17
|
-
default: %i[default default],
|
18
|
-
subtle: %i[light white],
|
19
|
-
muted: %i[light gray],
|
20
|
-
}.freeze
|
21
|
-
|
22
|
-
WEIGHTS = {
|
23
|
-
default: 0,
|
24
|
-
bold: 1,
|
25
|
-
light: 2,
|
26
|
-
italic: 3,
|
27
|
-
underline: 4,
|
28
|
-
frame: 51,
|
29
|
-
encircle: 52,
|
30
|
-
overline: 53,
|
31
|
-
}.freeze
|
32
|
-
|
33
|
-
COLORS = {
|
34
|
-
black: 30,
|
35
|
-
red: 31,
|
36
|
-
green: 32,
|
37
|
-
yellow: 33,
|
38
|
-
blue: 34,
|
39
|
-
magenta: 35,
|
40
|
-
cyan: 36,
|
41
|
-
gray: 37, white: 97,
|
42
|
-
default: 39,
|
43
|
-
}.freeze
|
7
|
+
ESC = "\e["
|
44
8
|
|
9
|
+
Token = Struct.new(:style, :content) do
|
45
10
|
def to_s
|
46
|
-
|
11
|
+
[
|
12
|
+
style_string,
|
13
|
+
content,
|
14
|
+
reset_string
|
15
|
+
].join
|
47
16
|
end
|
48
17
|
|
49
18
|
private
|
50
19
|
|
51
|
-
def
|
52
|
-
|
20
|
+
def style_string
|
21
|
+
"#{ESC}#{weight};#{color}m"
|
53
22
|
end
|
54
23
|
|
55
|
-
def
|
56
|
-
|
24
|
+
def reset_string
|
25
|
+
"#{ESC}0m"
|
26
|
+
end
|
27
|
+
|
28
|
+
def weight_key
|
29
|
+
style_components[0]
|
30
|
+
end
|
31
|
+
|
32
|
+
def color_key
|
33
|
+
style_components[1]
|
57
34
|
end
|
58
35
|
|
59
|
-
def
|
60
|
-
|
36
|
+
def weight
|
37
|
+
{
|
38
|
+
default: 0,
|
39
|
+
bold: 1,
|
40
|
+
light: 2,
|
41
|
+
italic: 3
|
42
|
+
}.fetch(weight_key)
|
43
|
+
end
|
44
|
+
|
45
|
+
def color
|
46
|
+
{
|
47
|
+
black: 30,
|
48
|
+
red: 31,
|
49
|
+
green: 32,
|
50
|
+
yellow: 33,
|
51
|
+
blue: 34,
|
52
|
+
magenta: 35,
|
53
|
+
cyan: 36,
|
54
|
+
gray: 37,
|
55
|
+
default: 39
|
56
|
+
}.fetch(color_key)
|
61
57
|
end
|
62
58
|
|
63
59
|
def style_components
|
64
|
-
|
60
|
+
{
|
61
|
+
success_bold: %i[bold green],
|
62
|
+
success: %i[default green],
|
63
|
+
slow: %i[default green],
|
64
|
+
error: %i[bold red],
|
65
|
+
broken: %i[bold red],
|
66
|
+
failure: %i[default red],
|
67
|
+
skipped: %i[bold yellow],
|
68
|
+
warning_light: %i[light yellow],
|
69
|
+
source: %i[italic default],
|
70
|
+
bold: %i[bold default],
|
71
|
+
default: %i[default default],
|
72
|
+
muted: %i[light gray]
|
73
|
+
}.fetch(style)
|
65
74
|
end
|
66
75
|
end
|
67
76
|
|
68
77
|
FORMATTERS = {
|
69
78
|
error: [
|
70
|
-
[ %i[error label], %i[muted
|
79
|
+
[ %i[error label], %i[muted arrow], %i[default test_name] ],
|
71
80
|
[ %i[default summary], ],
|
72
81
|
[ %i[default backtrace_summary] ],
|
73
82
|
],
|
74
83
|
broken: [
|
75
|
-
[ %i[broken label], %i[muted spacer], %i[
|
84
|
+
[ %i[broken label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name] ],
|
76
85
|
[ %i[default summary], ],
|
77
86
|
[ %i[default backtrace_summary] ],
|
78
87
|
],
|
79
88
|
failure: [
|
80
|
-
[ %i[failure label], %i[muted spacer], %i[
|
89
|
+
[ %i[failure label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name], %i[muted spacer], %i[muted class] ],
|
81
90
|
[ %i[default summary] ],
|
82
|
-
[ %i[
|
91
|
+
[ %i[muted location], ],
|
83
92
|
[ %i[default source_summary], ],
|
84
93
|
],
|
85
94
|
skipped: [
|
86
|
-
[ %i[skipped label], %i[muted spacer], %i[
|
87
|
-
[ %i[default summary]
|
95
|
+
[ %i[skipped label], %i[muted spacer], %i[default test_class], %i[muted arrow], %i[default test_name] ],
|
96
|
+
[ %i[default summary] ],
|
88
97
|
[], # New Line
|
89
98
|
],
|
90
99
|
slow: [
|
@@ -118,7 +127,7 @@ module Minitest
|
|
118
127
|
when 'B' then text(:failure, value)
|
119
128
|
when 'F' then text(:failure, value)
|
120
129
|
when 'S' then text(:skipped, value)
|
121
|
-
when '
|
130
|
+
when '_' then text(:success, value)
|
122
131
|
else text(:success, value)
|
123
132
|
end
|
124
133
|
end
|
@@ -156,8 +165,6 @@ module Minitest
|
|
156
165
|
text(:broken, 'B' * values[:broken].size) if values[:broken]&.any?
|
157
166
|
text(:failure, 'F' * values[:failure].size) if values[:failure]&.any?
|
158
167
|
text(:skipped, 'S' * values[:skipped].size) if values[:skipped]&.any?
|
159
|
-
text(:slow, 'S' * values[:skipped].size) if values[:skipped]&.any?
|
160
|
-
|
161
168
|
text(:muted, ' ')
|
162
169
|
|
163
170
|
text(:muted, "#{path.delete_prefix('/')}")
|
@@ -169,7 +176,7 @@ module Minitest
|
|
169
176
|
all_line_numbers += values.fetch(:skipped, [])
|
170
177
|
|
171
178
|
line_numbers = all_line_numbers.compact.uniq.sort
|
172
|
-
line_numbers.each { |line_number| text(:
|
179
|
+
line_numbers.each { |line_number| text(:muted, "#{line_number} ") }
|
173
180
|
newline
|
174
181
|
end
|
175
182
|
newline
|
@@ -191,7 +198,7 @@ module Minitest
|
|
191
198
|
text(:default, counts.join(', '))
|
192
199
|
|
193
200
|
newline
|
194
|
-
text(:
|
201
|
+
text(:muted, "#{results.tests_per_second} tests/s and #{results.assertions_per_second} assertions/s ")
|
195
202
|
|
196
203
|
newline
|
197
204
|
text(:muted, pluralize(results.test_count, 'Test') + ' & ')
|
@@ -218,7 +225,7 @@ module Minitest
|
|
218
225
|
source = Minitest::Heat::Source.new(filename, line_number: line.number, max_line_count: 1)
|
219
226
|
|
220
227
|
text(:muted, " #{line.path.delete_prefix("#{Dir.pwd}/")}/")
|
221
|
-
text(:
|
228
|
+
text(:muted, "#{line.file}:#{line.number}")
|
222
229
|
text(:source, " `#{source.line.strip}`")
|
223
230
|
|
224
231
|
newline
|
@@ -242,7 +249,7 @@ module Minitest
|
|
242
249
|
number_style, line_style = if line == source.line && highlight_line
|
243
250
|
[:default, :default]
|
244
251
|
else
|
245
|
-
[:
|
252
|
+
[:muted, :muted]
|
246
253
|
end
|
247
254
|
text(number_style, "#{' ' * indentation}#{line_number.to_s.rjust(max_line_number_length)} ")
|
248
255
|
text(line_style, line)
|
@@ -80,8 +80,14 @@ module Minitest
|
|
80
80
|
# pressing issues are displayed at the bottom of the report in order to reduce scrolling.
|
81
81
|
# This way, as you fix issues, the list gets shorter, and eventually the least critical
|
82
82
|
# issues will be displayed without scrolling once more problematic issues are resolved.
|
83
|
-
results.
|
84
|
-
|
83
|
+
if results.failures.empty? && results.brokens.empty? && results.errors.empty? && results.skips.empty?
|
84
|
+
results.slows.each { |issue| output.issue_details(issue) }
|
85
|
+
end
|
86
|
+
|
87
|
+
if results.failures.empty? && results.brokens.empty? && results.errors.empty?
|
88
|
+
results.skips.each { |issue| output.issue_details(issue) }
|
89
|
+
end
|
90
|
+
|
85
91
|
results.failures.each { |issue| output.issue_details(issue) }
|
86
92
|
results.brokens.each { |issue| output.issue_details(issue) }
|
87
93
|
results.errors.each { |issue| output.issue_details(issue) }
|
data/minitest-heat.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-heat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garrett Dimon
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-08-
|
11
|
+
date: 2021-08-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: dead_end
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: pry
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|