test_bench-run 2.1.3.1 → 3.0.0.0.pre.1

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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench/run/controls/{result.rb → events.rb} +1 -1
  3. data/lib/test_bench/run/controls/{process_id.rb → message.rb} +1 -1
  4. data/lib/test_bench/run/controls/path.rb +1 -9
  5. data/lib/test_bench/run/controls/random.rb +1 -1
  6. data/lib/test_bench/run/controls/session.rb +14 -0
  7. data/lib/test_bench/run/controls/status.rb +42 -0
  8. data/lib/test_bench/run/controls/summary/file/info.rb +106 -0
  9. data/lib/test_bench/run/controls/summary/file/totals.rb +36 -0
  10. data/lib/test_bench/run/controls/summary/file.rb +42 -0
  11. data/lib/test_bench/run/controls/summary/run.rb +51 -0
  12. data/lib/test_bench/run/controls/summary.rb +43 -0
  13. data/lib/test_bench/run/controls/{events/session.rb → telemetry.rb} +2 -2
  14. data/lib/test_bench/run/controls/time.rb +1 -1
  15. data/lib/test_bench/run/controls.rb +14 -20
  16. data/lib/test_bench/run/run.rb +78 -90
  17. data/lib/test_bench/run/{get_files → select_files}/substitute.rb +11 -14
  18. data/lib/test_bench/run/select_files.rb +68 -0
  19. data/lib/test_bench/run/substitute.rb +40 -0
  20. data/lib/test_bench/run/summary/substitute.rb +17 -0
  21. data/lib/test_bench/run/summary.rb +475 -0
  22. data/lib/test_bench/run.rb +6 -14
  23. metadata +32 -45
  24. data/lib/test_bench/run/controls/directory.rb +0 -70
  25. data/lib/test_bench/run/controls/event_data.rb +0 -7
  26. data/lib/test_bench/run/controls/events/event_data.rb +0 -9
  27. data/lib/test_bench/run/controls/events/file_crashed.rb +0 -109
  28. data/lib/test_bench/run/controls/events/file_finished.rb +0 -56
  29. data/lib/test_bench/run/controls/events/file_started.rb +0 -47
  30. data/lib/test_bench/run/controls/events/finished.rb +0 -56
  31. data/lib/test_bench/run/controls/events/started.rb +0 -47
  32. data/lib/test_bench/run/controls/exception.rb +0 -101
  33. data/lib/test_bench/run/controls/executor.rb +0 -56
  34. data/lib/test_bench/run/controls/file/create.rb +0 -69
  35. data/lib/test_bench/run/controls/file/pattern.rb +0 -33
  36. data/lib/test_bench/run/controls/file.rb +0 -180
  37. data/lib/test_bench/run/events.rb +0 -12
  38. data/lib/test_bench/run/executor/serial.rb +0 -34
  39. data/lib/test_bench/run/executor/substitute.rb +0 -45
  40. data/lib/test_bench/run/executor.rb +0 -44
  41. data/lib/test_bench/run/file.rb +0 -81
  42. data/lib/test_bench/run/get_files.rb +0 -76
  43. data/lib/test_bench/run/output/file.rb +0 -135
  44. data/lib/test_bench/run/output/summary/error.rb +0 -139
  45. data/lib/test_bench/run/output/summary.rb +0 -182
@@ -1,139 +0,0 @@
1
- module TestBench
2
- class Run
3
- module Output
4
- class Summary
5
- class Error
6
- StateError = Class.new(RuntimeError)
7
-
8
- include TestBench::Output
9
- include Events
10
-
11
- attr_accessor :current_file
12
-
13
- def failure_summary
14
- @failure_summary ||= {}
15
- end
16
- attr_writer :failure_summary
17
-
18
- handle FileStarted do |file_started|
19
- file = file_started.file
20
-
21
- start_file(file)
22
- end
23
-
24
- handle Session::Events::Failed do
25
- current_file.record_failure
26
- end
27
-
28
- handle FileFinished do |file_finished|
29
- file = file_finished.file
30
- result = file_finished.result
31
-
32
- finish_file(file, result)
33
- end
34
-
35
- handle FileCrashed do |file_crashed|
36
- file = file_crashed.file
37
-
38
- error_message = file_crashed.error_message
39
-
40
- finish_file(file, error_message:)
41
- end
42
-
43
- handle Finished do |finished|
44
- if not failure_summary.empty?
45
- print_summary
46
- end
47
- end
48
-
49
- def print_summary
50
- writer.style(:bold, :underline, :red).puts("Failure Summary:")
51
-
52
- failure_summary.each_value do |file_record|
53
- file, failures, error_message = file_record.to_a
54
-
55
- writer
56
- .style(:faint, :red)
57
- .print("-")
58
- .style(:reset_intensity, :bold)
59
- .print(" #{file}")
60
- .style(:reset_intensity)
61
- .print(":")
62
-
63
- if failures > 0
64
- writer.print(" %i failure%s" % [
65
- failures,
66
- failures == 1 ? '' : 's'
67
- ])
68
-
69
- if not error_message.nil?
70
- writer.print(".")
71
- end
72
- end
73
-
74
- if not error_message.nil?
75
- writer.puts(" File crashed, error:")
76
-
77
- writer.style(:red).puts(" #{error_message}")
78
- else
79
- writer.puts
80
- end
81
-
82
- writer.puts
83
- end
84
- end
85
-
86
- def start_file(file)
87
- if not current_file.nil?
88
- raise StateError, "Already started file #{current_file.file.inspect} (File: #{file.inspect})"
89
- end
90
-
91
- file = File.build(file)
92
-
93
- self.current_file = file
94
- end
95
-
96
- def finish_file(file, result=nil, error_message: nil)
97
- result ||= false
98
-
99
- if not current_file?(file)
100
- raise StateError, "Cannot finish file #{file.inspect} (Current File: #{current_file&.file.inspect})"
101
- end
102
-
103
- if not result
104
- if not error_message.nil?
105
- current_file.error_message = error_message
106
- end
107
-
108
- failure_summary[file] = current_file
109
- end
110
-
111
- self.current_file = nil
112
- end
113
-
114
- def current_file?(file=nil)
115
- return false if current_file.nil?
116
-
117
- if not file.nil?
118
- file == current_file.file
119
- else
120
- true
121
- end
122
- end
123
-
124
- File = Struct.new(:file, :failures, :error_message) do
125
- def self.build(file)
126
- failures = 0
127
-
128
- new(file, failures)
129
- end
130
-
131
- def record_failure
132
- self.failures += 1
133
- end
134
- end
135
- end
136
- end
137
- end
138
- end
139
- end
@@ -1,182 +0,0 @@
1
- module TestBench
2
- class Run
3
- module Output
4
- class Summary
5
- StateError = Class.new(RuntimeError)
6
-
7
- include TestBench::Output
8
- include Session::Events
9
- include Events
10
-
11
- def tests_finished
12
- @tests_finished ||= 0
13
- end
14
- attr_writer :tests_finished
15
-
16
- def tests_passed
17
- @tests_passed ||= 0
18
- end
19
- attr_writer :tests_passed
20
-
21
- def tests_failed
22
- @tests_failed ||= 0
23
- end
24
- attr_writer :tests_failed
25
-
26
- def tests_skipped
27
- @tests_skipped ||= 0
28
- end
29
- attr_writer :tests_skipped
30
-
31
- def contexts_skipped
32
- @contexts_skipped ||= 0
33
- end
34
- attr_writer :contexts_skipped
35
-
36
- def files_finished
37
- @files_finished ||= 0
38
- end
39
- attr_writer :files_finished
40
-
41
- def files_crashed
42
- @files_crashed ||= 0
43
- end
44
- attr_writer :files_crashed
45
-
46
- attr_accessor :start_time
47
- attr_accessor :finish_time
48
- attr_accessor :elapsed_time
49
-
50
- handle TestFinished do |test_finished|
51
- self.tests_finished += 1
52
-
53
- if test_finished.result
54
- self.tests_passed += 1
55
- else
56
- self.tests_failed += 1
57
- end
58
- end
59
-
60
- handle TestSkipped do
61
- self.tests_skipped += 1
62
- end
63
-
64
- handle ContextSkipped do
65
- self.contexts_skipped += 1
66
- end
67
-
68
- handle FileFinished do
69
- self.files_finished += 1
70
- end
71
-
72
- handle FileCrashed do
73
- self.files_crashed += 1
74
- end
75
-
76
- handle Started do |started|
77
- start_time = started.metadata.time
78
-
79
- self.start_time = start_time
80
- end
81
-
82
- handle Finished do |finished|
83
- finish_time = finished.metadata.time
84
-
85
- record_finish_time(finish_time)
86
-
87
- finish
88
- end
89
-
90
- def record_finish_time(finish_time)
91
- if start_time.nil?
92
- raise StateError, "Start time isn't set"
93
- end
94
-
95
- self.finish_time = finish_time
96
-
97
- elapsed_time = finish_time - start_time
98
- self.elapsed_time = elapsed_time
99
- end
100
-
101
- def finish
102
- writer.print("Finished running %i file%s, " % [
103
- files_finished,
104
- files_finished == 1 ? '' : 's'
105
- ])
106
-
107
- if files_crashed > 0
108
- writer
109
- .style(:bold, :red)
110
- .puts("%i file%s crashed" % [
111
- files_crashed,
112
- files_crashed == 1 ? '' : 's'
113
- ])
114
- else
115
- writer.puts("0 files crashed")
116
- end
117
-
118
- writer.print("Ran %i test%s" % [
119
- tests_finished,
120
- tests_finished == 1 ? '' : 's'
121
- ])
122
-
123
- if not elapsed_time.nil?
124
- tests_per_second = tests_finished / elapsed_time
125
- writer.print(" in %0.3fs (%i test%s/second)" % [
126
- elapsed_time,
127
- tests_per_second,
128
- tests_finished == 1 ? '' : 's'
129
- ])
130
- end
131
- writer.puts
132
-
133
- skip_count = tests_skipped + contexts_skipped
134
-
135
- if tests_passed > 0
136
- if skip_count.zero? && tests_failed.zero?
137
- writer.style(:bold)
138
- end
139
-
140
- writer
141
- .style(:green)
142
- .print("#{tests_passed} passed")
143
- .style(:reset_fg)
144
-
145
- if skip_count.zero? && tests_failed.zero?
146
- writer.style(:reset_intensity)
147
- end
148
- else
149
- writer
150
- .style(:bold, :faint, :italic)
151
- .print("0 passed")
152
- .style(:reset_italic, :reset_intensity)
153
- end
154
- writer.print(", ")
155
-
156
- if skip_count.zero?
157
- writer.print("0 skipped")
158
- else
159
- writer
160
- .style(:bold, :yellow)
161
- .print("%i%s skipped" % [
162
- skip_count,
163
- contexts_skipped > 0 ? '+' : ''
164
- ])
165
- .style(:reset_fg, :reset_intensity)
166
- end
167
- writer.print(", ")
168
-
169
- if tests_failed > 0
170
- writer
171
- .style(:bold, :red)
172
- .puts("#{tests_failed} failed")
173
- else
174
- writer.puts("0 failed")
175
- end
176
-
177
- writer.puts
178
- end
179
- end
180
- end
181
- end
182
- end