Class: Kapnismology::SmokeTest
- Inherits:
-
Object
- Object
- Kapnismology::SmokeTest
show all
- Defined in:
- lib/kapnismology/smoke_test.rb
Overview
This is the base class for all the smoke tests. Inherit from this class and implement the result and self.name method
Defined Under Namespace
Classes: NullResult, Result, SmokeTestFailed, Success
Constant Summary
collapse
- DEPLOYMENT_TAG =
'deployment'.freeze
- RUNTIME_TAG =
'runtime'.freeze
- DEFAULT_TAGS =
[DEPLOYMENT_TAG, RUNTIME_TAG].freeze
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.inherited(klass) ⇒ Object
46
47
48
|
# File 'lib/kapnismology/smoke_test.rb', line 46
def tags
DEFAULT_TAGS
end
|
.timeout ⇒ Object
50
51
52
|
# File 'lib/kapnismology/smoke_test.rb', line 50
def timeout
10
end
|
Instance Method Details
#__result__ ⇒ Object
Internally Kapnismology is calling this method. We are handling exceptions under the hood here
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/kapnismology/smoke_test.rb', line 19
def __result__
start_time = Time.now
execution = Timeout.timeout(self.class.timeout) { result }
result_object = execution || Result.new(false, {}, 'This test has not returned any result')
unless result_object.class.ancestors.include?(BaseResult)
message = "Smoke test #{self.class}, returned #{result_object.class} instead of a Result"
result_object = Result.new(false, { returned_class: result_object.class }, message)
end
rescue Kapnismology::SmokeTestFailed => e
result_object = e.result
rescue Timeout::Error => e
message = "#{self.class} took more than #{self.class.timeout} seconds to finish and timed-out"
result_object = Result.new(false, { exception: e.class, message: e.message }, message)
rescue Exception => e message = "Unrescued error happened in #{self.class}"
result_object = Result.new(false, { exception: e.class, message: e.message }, message)
ensure
@all_result_messages ||= []
result_object.record_duration(start_time)
return result_object.add_debug_messages(@all_result_messages)
end
|
#result ⇒ Object
16
|
# File 'lib/kapnismology/smoke_test.rb', line 16
def result; end
|