Class: Megatest::Queue::Summary

Inherits:
Object
  • Object
show all
Defined in:
lib/megatest/queue.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#resultsObject (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_countObject



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_countObject



139
140
141
# File 'lib/megatest/queue.rb', line 139

def errors_count
  results.count(&:error?)
end

#failuresObject



147
148
149
# File 'lib/megatest/queue.rb', line 147

def failures
  results.reject(&:success?)
end

#failures_countObject



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_countObject



131
132
133
# File 'lib/megatest/queue.rb', line 131

def retries_count
  results.count(&:retried?)
end

#runs_countObject



123
124
125
# File 'lib/megatest/queue.rb', line 123

def runs_count
  results.size
end

#skips_countObject



143
144
145
# File 'lib/megatest/queue.rb', line 143

def skips_count
  results.count(&:skipped?)
end

#success?Boolean

Returns:

  • (Boolean)


151
152
153
# File 'lib/megatest/queue.rb', line 151

def success?
  !results.empty? && @results.all?(&:ok?)
end

#total_timeObject



127
128
129
# File 'lib/megatest/queue.rb', line 127

def total_time
  results.sum(0.0, &:duration)
end