Class: Mergify::RSpec::FlakyDetector::TestMetrics
- Inherits:
-
Object
- Object
- Mergify::RSpec::FlakyDetector::TestMetrics
- Defined in:
- lib/mergify/rspec/flaky_detection.rb
Overview
Per-test tracking metrics.
Instance Attribute Summary collapse
-
#deadline ⇒ Object
Returns the value of attribute deadline.
-
#initial_call_duration ⇒ Object
Returns the value of attribute initial_call_duration.
-
#initial_setup_duration ⇒ Object
Returns the value of attribute initial_setup_duration.
-
#initial_teardown_duration ⇒ Object
Returns the value of attribute initial_teardown_duration.
-
#prevented_timeout ⇒ Object
Returns the value of attribute prevented_timeout.
-
#rerun_count ⇒ Object
Returns the value of attribute rerun_count.
-
#total_duration ⇒ Object
Returns the value of attribute total_duration.
Instance Method Summary collapse
- #fill_from_report(phase, duration, _status) ⇒ Object
- #initial_duration ⇒ Object
-
#initialize ⇒ TestMetrics
constructor
A new instance of TestMetrics.
- #remaining_time ⇒ Object
- #will_exceed_deadline? ⇒ Boolean
Constructor Details
#initialize ⇒ TestMetrics
Returns a new instance of TestMetrics.
19 20 21 22 23 24 25 26 27 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 19 def initialize @initial_setup_duration = 0.0 @initial_call_duration = 0.0 @initial_teardown_duration = 0.0 @rerun_count = 0 @deadline = nil @prevented_timeout = false @total_duration = 0.0 end |
Instance Attribute Details
#deadline ⇒ Object
Returns the value of attribute deadline.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def deadline @deadline end |
#initial_call_duration ⇒ Object
Returns the value of attribute initial_call_duration.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def initial_call_duration @initial_call_duration end |
#initial_setup_duration ⇒ Object
Returns the value of attribute initial_setup_duration.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def initial_setup_duration @initial_setup_duration end |
#initial_teardown_duration ⇒ Object
Returns the value of attribute initial_teardown_duration.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def initial_teardown_duration @initial_teardown_duration end |
#prevented_timeout ⇒ Object
Returns the value of attribute prevented_timeout.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def prevented_timeout @prevented_timeout end |
#rerun_count ⇒ Object
Returns the value of attribute rerun_count.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def rerun_count @rerun_count end |
#total_duration ⇒ Object
Returns the value of attribute total_duration.
16 17 18 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 16 def total_duration @total_duration end |
Instance Method Details
#fill_from_report(phase, duration, _status) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 45 def fill_from_report(phase, duration, _status) case phase when 'setup' @initial_setup_duration = duration if @initial_setup_duration.zero? when 'call' @initial_call_duration = duration if @initial_call_duration.zero? @rerun_count += 1 when 'teardown' @initial_teardown_duration = duration if @initial_teardown_duration.zero? end @total_duration += duration end |
#initial_duration ⇒ Object
29 30 31 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 29 def initial_duration @initial_setup_duration + @initial_call_duration + @initial_teardown_duration end |
#remaining_time ⇒ Object
33 34 35 36 37 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 33 def remaining_time return 0.0 if @deadline.nil? [(@deadline - Time.now.to_f), 0.0].max end |
#will_exceed_deadline? ⇒ Boolean
39 40 41 42 43 |
# File 'lib/mergify/rspec/flaky_detection.rb', line 39 def will_exceed_deadline? return false if @deadline.nil? (Time.now.to_f + initial_duration) >= @deadline end |