test_bench-run 2.1.3.0 → 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.
- checksums.yaml +4 -4
- data/lib/test_bench/run/controls/{result.rb → events.rb} +1 -1
- data/lib/test_bench/run/controls/{process_id.rb → message.rb} +1 -1
- data/lib/test_bench/run/controls/path.rb +1 -9
- data/lib/test_bench/run/controls/random.rb +1 -1
- data/lib/test_bench/run/controls/session.rb +14 -0
- data/lib/test_bench/run/controls/status.rb +42 -0
- data/lib/test_bench/run/controls/summary/file/info.rb +106 -0
- data/lib/test_bench/run/controls/summary/file/totals.rb +36 -0
- data/lib/test_bench/run/controls/summary/file.rb +42 -0
- data/lib/test_bench/run/controls/summary/run.rb +51 -0
- data/lib/test_bench/run/controls/summary.rb +43 -0
- data/lib/test_bench/run/controls/{events/session.rb → telemetry.rb} +2 -2
- data/lib/test_bench/run/controls/time.rb +1 -1
- data/lib/test_bench/run/controls.rb +14 -20
- data/lib/test_bench/run/run.rb +78 -90
- data/lib/test_bench/run/{get_files → select_files}/substitute.rb +11 -14
- data/lib/test_bench/run/select_files.rb +68 -0
- data/lib/test_bench/run/substitute.rb +40 -0
- data/lib/test_bench/run/summary/substitute.rb +17 -0
- data/lib/test_bench/run/summary.rb +475 -0
- data/lib/test_bench/run.rb +6 -14
- metadata +32 -45
- data/lib/test_bench/run/controls/directory.rb +0 -70
- data/lib/test_bench/run/controls/event_data.rb +0 -7
- data/lib/test_bench/run/controls/events/event_data.rb +0 -9
- data/lib/test_bench/run/controls/events/file_crashed.rb +0 -109
- data/lib/test_bench/run/controls/events/file_finished.rb +0 -56
- data/lib/test_bench/run/controls/events/file_started.rb +0 -47
- data/lib/test_bench/run/controls/events/finished.rb +0 -56
- data/lib/test_bench/run/controls/events/started.rb +0 -47
- data/lib/test_bench/run/controls/exception.rb +0 -101
- data/lib/test_bench/run/controls/executor.rb +0 -56
- data/lib/test_bench/run/controls/file/create.rb +0 -69
- data/lib/test_bench/run/controls/file/pattern.rb +0 -33
- data/lib/test_bench/run/controls/file.rb +0 -180
- data/lib/test_bench/run/events.rb +0 -12
- data/lib/test_bench/run/executor/serial.rb +0 -34
- data/lib/test_bench/run/executor/substitute.rb +0 -45
- data/lib/test_bench/run/executor.rb +0 -44
- data/lib/test_bench/run/file.rb +0 -81
- data/lib/test_bench/run/get_files.rb +0 -76
- data/lib/test_bench/run/output/file.rb +0 -135
- data/lib/test_bench/run/output/summary/error.rb +0 -139
- 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
|