Class: Megatest::Queue::Summary
- Inherits:
-
Object
- Object
- Megatest::Queue::Summary
- Defined in:
- lib/megatest/queue.rb
Instance Attribute Summary collapse
-
#results ⇒ Object
readonly
Returns the value of attribute results.
Instance Method Summary collapse
- #assertions_count ⇒ Object
-
#deduplicate! ⇒ Object
When running distributed queues, it’s possible that a test is considered lost and end up with both a successful and a failed result.
- #errors_count ⇒ Object
- #failures ⇒ Object
- #failures_count ⇒ Object
-
#initialize(results = []) ⇒ Summary
constructor
A new instance of Summary.
- #initialize_dup(_) ⇒ Object
- #record_result(result) ⇒ Object
- #retries_count ⇒ Object
- #runs_count ⇒ Object
- #skips_count ⇒ Object
- #success? ⇒ Boolean
- #total_time ⇒ Object
Constructor Details
#initialize(results = []) ⇒ Summary
Returns a new instance of Summary.
93 94 95 |
# File 'lib/megatest/queue.rb', line 93 def initialize(results = []) @results = results end |
Instance Attribute Details
#results ⇒ Object (readonly)
Returns the value of attribute results.
91 92 93 |
# File 'lib/megatest/queue.rb', line 91 def results @results end |
Instance Method Details
#assertions_count ⇒ Object
124 125 126 |
# File 'lib/megatest/queue.rb', line 124 def assertions_count results.sum(0, &:assertions_count) end |
#deduplicate! ⇒ Object
When running distributed queues, it’s possible that a test is considered lost and end up with both a successful and a failed result. In such case we turn the failed result into a retry after the fact.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/megatest/queue.rb', line 107 def deduplicate! success = {} @results.each do |result| if result.success? success[result.test_id] = true end end @results.map! do |result| if result.bad? && success[result.test_id] result.retry else result end end end |
#errors_count ⇒ Object
144 145 146 |
# File 'lib/megatest/queue.rb', line 144 def errors_count results.count(&:error?) end |
#failures ⇒ Object
152 153 154 |
# File 'lib/megatest/queue.rb', line 152 def failures results.reject(&:success?) end |
#failures_count ⇒ Object
140 141 142 |
# File 'lib/megatest/queue.rb', line 140 def failures_count results.count(&:failure?) end |
#initialize_dup(_) ⇒ Object
97 98 99 100 |
# File 'lib/megatest/queue.rb', line 97 def initialize_dup(_) super @results = @results.dup end |
#record_result(result) ⇒ Object
160 161 162 163 |
# File 'lib/megatest/queue.rb', line 160 def record_result(result) @results << result result end |
#retries_count ⇒ Object
136 137 138 |
# File 'lib/megatest/queue.rb', line 136 def retries_count results.count(&:retried?) end |
#runs_count ⇒ Object
128 129 130 |
# File 'lib/megatest/queue.rb', line 128 def runs_count results.size end |
#skips_count ⇒ Object
148 149 150 |
# File 'lib/megatest/queue.rb', line 148 def skips_count results.count(&:skipped?) end |
#success? ⇒ Boolean
156 157 158 |
# File 'lib/megatest/queue.rb', line 156 def success? !results.empty? && @results.all?(&:ok?) end |
#total_time ⇒ Object
132 133 134 |
# File 'lib/megatest/queue.rb', line 132 def total_time results.sum(0.0, &:duration) end |