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.
- #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
119 120 121 |
# File 'lib/megatest/queue.rb', line 119 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.
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/megatest/queue.rb', line 102 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
139 140 141 |
# File 'lib/megatest/queue.rb', line 139 def errors_count results.count(&:error?) end |
#failures ⇒ Object
147 148 149 |
# File 'lib/megatest/queue.rb', line 147 def failures results.reject(&:success?) end |
#failures_count ⇒ Object
135 136 137 |
# File 'lib/megatest/queue.rb', line 135 def failures_count results.count(&:failure?) end |
#record_result(result) ⇒ Object
155 156 157 158 |
# File 'lib/megatest/queue.rb', line 155 def record_result(result) @results << result result end |
#retries_count ⇒ Object
131 132 133 |
# File 'lib/megatest/queue.rb', line 131 def retries_count results.count(&:retried?) end |
#runs_count ⇒ Object
123 124 125 |
# File 'lib/megatest/queue.rb', line 123 def runs_count results.size end |
#skips_count ⇒ Object
143 144 145 |
# File 'lib/megatest/queue.rb', line 143 def skips_count results.count(&:skipped?) end |
#success? ⇒ Boolean
151 152 153 |
# File 'lib/megatest/queue.rb', line 151 def success? !results.empty? && @results.all?(&:ok?) end |
#total_time ⇒ Object
127 128 129 |
# File 'lib/megatest/queue.rb', line 127 def total_time results.sum(0.0, &:duration) end |