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



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_countObject



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

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

#failuresObject



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

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

#failures_countObject



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_countObject



136
137
138
# File 'lib/megatest/queue.rb', line 136

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

#runs_countObject



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

def runs_count
  results.size
end

#skips_countObject



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

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

#success?Boolean

Returns:

  • (Boolean)


156
157
158
# File 'lib/megatest/queue.rb', line 156

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

#total_timeObject



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

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