minitest-bender 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -1
  3. data/Gemfile +1 -1
  4. data/README.md +37 -6
  5. data/lib/minitest-bender/colorizer.rb +61 -0
  6. data/lib/minitest-bender/configuration.rb +174 -0
  7. data/lib/minitest-bender/printers/plain.rb +29 -0
  8. data/lib/minitest-bender/printers/with_progress_bar.rb +115 -0
  9. data/lib/minitest-bender/recorders/grouped_icons.rb +36 -0
  10. data/lib/minitest-bender/recorders/icons.rb +26 -0
  11. data/lib/minitest-bender/recorders/none.rb +17 -0
  12. data/lib/minitest-bender/recorders/progress.rb +25 -0
  13. data/lib/minitest-bender/recorders/progress_groups.rb +48 -0
  14. data/lib/minitest-bender/recorders/progress_groups_and_issues.rb +55 -0
  15. data/lib/minitest-bender/recorders/progress_issues.rb +32 -0
  16. data/lib/minitest-bender/recorders/progress_verbose.rb +34 -0
  17. data/lib/minitest-bender/result_context.rb +39 -0
  18. data/lib/minitest-bender/result_factory.rb +5 -0
  19. data/lib/minitest-bender/results/base.rb +94 -38
  20. data/lib/minitest-bender/results/expectation.rb +10 -8
  21. data/lib/minitest-bender/results/test.rb +21 -8
  22. data/lib/minitest-bender/sections/activity.rb +95 -0
  23. data/lib/minitest-bender/sections/issues.rb +22 -0
  24. data/lib/minitest-bender/sections/sorted_overview.rb +115 -0
  25. data/lib/minitest-bender/sections/suite_status.rb +72 -0
  26. data/lib/minitest-bender/sections/time_ranking.rb +49 -0
  27. data/lib/minitest-bender/states/base.rb +76 -19
  28. data/lib/minitest-bender/states/failing.rb +11 -8
  29. data/lib/minitest-bender/states/passing.rb +19 -8
  30. data/lib/minitest-bender/states/raising.rb +42 -20
  31. data/lib/minitest-bender/states/skipped.rb +12 -9
  32. data/lib/minitest-bender/utils.rb +26 -0
  33. data/lib/minitest-bender/version.rb +1 -1
  34. data/lib/minitest/bender.rb +166 -77
  35. data/lib/minitest/bender_plugin.rb +49 -3
  36. data/lib/minitest_bender.rb +23 -5
  37. data/minitest-bender.gemspec +6 -6
  38. metadata +39 -22
@@ -1,8 +1,54 @@
1
+ require 'minitest/bender'
2
+
1
3
  module Minitest
4
+ def self.plugin_bender_options(opts, _options)
5
+ opts.on '--bender', 'Enable Bender: the coolest CLI reporter.' do
6
+ Bender.enable!
7
+ end
8
+
9
+ opts.on '--bender-mode MODE', 'Choose the mode of interaction with other reporters. [oblivious | cooperative] (overrides $BENDER_MODE)' do |m|
10
+ Bender.configuration.mode = m
11
+ end
12
+
13
+ opts.on '--bender-recorder RECORDER', 'Choose how test results are printed as the suite runs. [progress | progress_groups | progress_issues | progress_groups_and_issues | progress_verbose | icons | grouped_icons | none] (overrides $BENDER_RECORDER)' do |r|
14
+ Bender.configuration.recorder = r
15
+ end
16
+
17
+ opts.on('--bender-sections SECTIONS', 'Choose which sections to print. Eg: activity,suite_status (overrides $BENDER_SECTIONS)') do |ss|
18
+ Bender.configuration.sections = ss
19
+ end
20
+
21
+ opts.on('--bender-sections-blacklist SECTIONS', 'Choose which sections to skip. Eg: overview,time_ranking (overrides $BENDER_SECTIONS_BLACKLIST)') do |ss|
22
+ Bender.configuration.sections_blacklist = ss
23
+ end
24
+
25
+ opts.on '--bender-overview-sort-key KEY', 'Choose how tests are sorted in the overview. [name | number] (overrides $BENDER_OVERVIEW_SORT_KEY)' do |k|
26
+ Bender.configuration.overview_sort_key = k
27
+ end
28
+
29
+ opts.on '--bender-time-ranking-size SIZE', 'Set the time ranking maximum size. (overrides $BENDER_TIME_RANKING_SIZE)' do |s|
30
+ Bender.configuration.time_ranking_size = s
31
+ end
32
+
33
+ opts.on('--bender-backtrace-view BV', 'Choose the backtrace view for test errors. [user | full] (overrides $BENDER_BACKTRACE_VIEW)') do |b|
34
+ Bender.configuration.backtrace_view = b
35
+ end
36
+
37
+ opts.on('--bender-rerun-command-stem STEM', "Set the stem of rerun commands. Eg: 'rake spec' (overrides $BENDER_RERUN_COMMAND_STEM)") do |s|
38
+ Bender.configuration.rerun_command_stem = s
39
+ end
40
+
41
+ Bender::Colorizer.color_keys.each do |color_key|
42
+ colorized_color_key = Bender::Colorizer.colorize(color_key.to_s, color_key)
43
+ opts.on("--bender-#{color_key}-color COLOR", "Set the #{colorized_color_key} color. (overrides $BENDER_#{color_key.upcase}_COLOR)") do |c|
44
+ Bender.configuration.set_custom_color(color_key, c)
45
+ end
46
+ end
47
+ end
48
+
2
49
  def self.plugin_bender_init(options)
3
- Minitest.reporter.reporters.clear
50
+ return unless Bender.enabled?
51
+ Minitest.reporter.reporters.clear unless Bender.configuration.cooperative?
4
52
  Minitest.reporter << Bender.new(options.fetch(:io, $stdout), options)
5
53
  end
6
-
7
- def self.plugin_bender_options(_opts, _options); end
8
54
  end
@@ -1,7 +1,10 @@
1
- require 'colorin'
1
+ # frozen_string_literal: true
2
2
 
3
3
  require 'minitest-bender/version'
4
4
 
5
+ require 'minitest-bender/configuration'
6
+ require 'minitest-bender/colorizer'
7
+
5
8
  require 'minitest-bender/states/base'
6
9
  require 'minitest-bender/states/passing'
7
10
  require 'minitest-bender/states/skipped'
@@ -12,6 +15,25 @@ require 'minitest-bender/results/base'
12
15
  require 'minitest-bender/results/test'
13
16
  require 'minitest-bender/results/expectation'
14
17
 
18
+ require 'minitest-bender/printers/plain'
19
+ require 'minitest-bender/printers/with_progress_bar'
20
+
21
+ require 'minitest-bender/recorders/progress'
22
+ require 'minitest-bender/recorders/progress_groups'
23
+ require 'minitest-bender/recorders/progress_issues'
24
+ require 'minitest-bender/recorders/progress_groups_and_issues'
25
+ require 'minitest-bender/recorders/progress_verbose'
26
+ require 'minitest-bender/recorders/icons'
27
+ require 'minitest-bender/recorders/grouped_icons'
28
+ require 'minitest-bender/recorders/none'
29
+
30
+ require 'minitest-bender/sections/sorted_overview'
31
+ require 'minitest-bender/sections/time_ranking'
32
+ require 'minitest-bender/sections/issues'
33
+ require 'minitest-bender/sections/activity'
34
+ require 'minitest-bender/sections/suite_status'
35
+
36
+ require 'minitest-bender/result_context'
15
37
  require 'minitest-bender/result_factory'
16
38
  require 'minitest-bender/utils'
17
39
 
@@ -30,8 +52,4 @@ module MinitestBender
30
52
  def self.result_factory
31
53
  @result_factory ||= ResultFactory.new
32
54
  end
33
-
34
- def self.passing_color
35
- states.fetch('.').color
36
- end
37
55
  end
@@ -7,11 +7,11 @@ require 'minitest-bender/version'
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'minitest-bender'
9
9
  spec.version = MinitestBender::VERSION
10
- spec.date = '2019-06-09'
10
+ spec.date = '2020-07-19'
11
11
  spec.authors = ['Eugenio Bruno']
12
12
  spec.email = ['eugeniobruno@gmail.com']
13
13
 
14
- spec.summary = 'My own Minitest reporter, without blackjack but with a hook.'
14
+ spec.summary = 'A comprehensive Minitest reporter.'
15
15
  spec.homepage = 'https://github.com/eugeniobruno/minitest-bender'
16
16
  spec.license = 'MIT'
17
17
 
@@ -27,9 +27,9 @@ Gem::Specification.new do |spec|
27
27
  spec.required_ruby_version = '>= 2.0.0'
28
28
 
29
29
  spec.add_runtime_dependency 'minitest', '~> 5.0'
30
- spec.add_runtime_dependency 'colorin', '~> 2.0'
30
+ spec.add_runtime_dependency 'paint', '~> 2.2'
31
+ spec.add_runtime_dependency 'tty-progressbar', '~> 0.17'
31
32
 
32
- spec.add_development_dependency 'bundler', '~> 1.15'
33
- spec.add_development_dependency 'rake', '~> 10.0'
34
- spec.add_development_dependency 'pry-byebug', '~> 3.4'
33
+ spec.add_development_dependency 'bundler'
34
+ spec.add_development_dependency 'rake'
35
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-bender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eugenio Bruno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-09 00:00:00.000000000 Z
11
+ date: 2020-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -25,61 +25,61 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: colorin
28
+ name: paint
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '2.0'
33
+ version: '2.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '2.0'
40
+ version: '2.2'
41
41
  - !ruby/object:Gem::Dependency
42
- name: bundler
42
+ name: tty-progressbar
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.15'
48
- type: :development
47
+ version: '0.17'
48
+ type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.15'
54
+ version: '0.17'
55
55
  - !ruby/object:Gem::Dependency
56
- name: rake
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry-byebug
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '3.4'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '3.4'
82
+ version: '0'
83
83
  description:
84
84
  email:
85
85
  - eugeniobruno@gmail.com
@@ -100,10 +100,28 @@ files:
100
100
  - Rakefile
101
101
  - bin/console
102
102
  - bin/setup
103
+ - lib/minitest-bender/colorizer.rb
104
+ - lib/minitest-bender/configuration.rb
105
+ - lib/minitest-bender/printers/plain.rb
106
+ - lib/minitest-bender/printers/with_progress_bar.rb
107
+ - lib/minitest-bender/recorders/grouped_icons.rb
108
+ - lib/minitest-bender/recorders/icons.rb
109
+ - lib/minitest-bender/recorders/none.rb
110
+ - lib/minitest-bender/recorders/progress.rb
111
+ - lib/minitest-bender/recorders/progress_groups.rb
112
+ - lib/minitest-bender/recorders/progress_groups_and_issues.rb
113
+ - lib/minitest-bender/recorders/progress_issues.rb
114
+ - lib/minitest-bender/recorders/progress_verbose.rb
115
+ - lib/minitest-bender/result_context.rb
103
116
  - lib/minitest-bender/result_factory.rb
104
117
  - lib/minitest-bender/results/base.rb
105
118
  - lib/minitest-bender/results/expectation.rb
106
119
  - lib/minitest-bender/results/test.rb
120
+ - lib/minitest-bender/sections/activity.rb
121
+ - lib/minitest-bender/sections/issues.rb
122
+ - lib/minitest-bender/sections/sorted_overview.rb
123
+ - lib/minitest-bender/sections/suite_status.rb
124
+ - lib/minitest-bender/sections/time_ranking.rb
107
125
  - lib/minitest-bender/states/base.rb
108
126
  - lib/minitest-bender/states/failing.rb
109
127
  - lib/minitest-bender/states/passing.rb
@@ -134,9 +152,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
152
  - !ruby/object:Gem::Version
135
153
  version: '0'
136
154
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.7.7
155
+ rubygems_version: 3.0.6
139
156
  signing_key:
140
157
  specification_version: 4
141
- summary: My own Minitest reporter, without blackjack but with a hook.
158
+ summary: A comprehensive Minitest reporter.
142
159
  test_files: []