Class: DiffTest::TestExecution
- Inherits:
-
Object
- Object
- DiffTest::TestExecution
- Defined in:
- lib/diff_test/test_execution.rb
Instance Attribute Summary collapse
-
#impacted_file_tracker ⇒ Object
readonly
Returns the value of attribute impacted_file_tracker.
Class Method Summary collapse
- .current ⇒ Object
- .current=(instance) ⇒ Object
- .get(test_id) ⇒ Object
- .set(test_id, instance) ⇒ Object
Instance Method Summary collapse
- #failed! ⇒ Object
- #finish ⇒ Object
- #id ⇒ Object
-
#initialize(test_file_path:, test_name:) ⇒ TestExecution
constructor
A new instance of TestExecution.
- #not_run! ⇒ Object
- #passed! ⇒ Object
- #passed? ⇒ Boolean
- #previous_runtime_s ⇒ Object
- #runtime_ms ⇒ Object
- #save_payload ⇒ Object
- #should_run? ⇒ Boolean
- #should_run_decider_result ⇒ Object
- #skipped! ⇒ Object
- #skipped? ⇒ Boolean
- #start ⇒ Object
- #stop ⇒ Object
- #successful? ⇒ Boolean
- #system_test? ⇒ Boolean
Constructor Details
#initialize(test_file_path:, test_name:) ⇒ TestExecution
Returns a new instance of TestExecution.
7 8 9 10 11 12 13 14 |
# File 'lib/diff_test/test_execution.rb', line 7 def initialize(test_file_path:, test_name:) @test_file_path = test_file_path @test_name = test_name @result = :queued @started_at = @stopped_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) @impacted_file_tracker = DiffTest::ImpactedFileTracker.new self.class.set(id, self) end |
Instance Attribute Details
#impacted_file_tracker ⇒ Object (readonly)
Returns the value of attribute impacted_file_tracker.
5 6 7 |
# File 'lib/diff_test/test_execution.rb', line 5 def impacted_file_tracker @impacted_file_tracker end |
Class Method Details
.current ⇒ Object
104 105 106 |
# File 'lib/diff_test/test_execution.rb', line 104 def self.current @current end |
.current=(instance) ⇒ Object
108 109 110 |
# File 'lib/diff_test/test_execution.rb', line 108 def self.current=(instance) @current = instance end |
.get(test_id) ⇒ Object
100 101 102 |
# File 'lib/diff_test/test_execution.rb', line 100 def self.get(test_id) @by_id[test_id] end |
.set(test_id, instance) ⇒ Object
95 96 97 98 |
# File 'lib/diff_test/test_execution.rb', line 95 def self.set(test_id, instance) @by_id ||= {} @by_id[test_id] = instance end |
Instance Method Details
#failed! ⇒ Object
70 71 72 |
# File 'lib/diff_test/test_execution.rb', line 70 def failed! @result = :failed end |
#finish ⇒ Object
54 55 56 |
# File 'lib/diff_test/test_execution.rb', line 54 def finish DiffTest::TestSuiteExecution.current.record_test_execution(self) end |
#id ⇒ Object
37 38 39 |
# File 'lib/diff_test/test_execution.rb', line 37 def id @id ||= DiffTest::Helper.test_id(@test_file_path, @test_name) end |
#not_run! ⇒ Object
58 59 60 |
# File 'lib/diff_test/test_execution.rb', line 58 def not_run! @result = :not_run end |
#passed! ⇒ Object
66 67 68 |
# File 'lib/diff_test/test_execution.rb', line 66 def passed! @result = :passed end |
#passed? ⇒ Boolean
74 75 76 |
# File 'lib/diff_test/test_execution.rb', line 74 def passed? @result == :passed end |
#previous_runtime_s ⇒ Object
24 25 26 |
# File 'lib/diff_test/test_execution.rb', line 24 def previous_runtime_s (should_run_decider_result[:previous_runtime_ms] / 1000.0) if should_run_decider_result[:previous_runtime_ms] end |
#runtime_ms ⇒ Object
86 87 88 89 |
# File 'lib/diff_test/test_execution.rb', line 86 def runtime_ms return 0 if @stopped_at.nil? || @started_at.nil? (@stopped_at - @started_at) * 1000 end |
#save_payload ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/diff_test/test_execution.rb', line 28 def save_payload { test: id, result: @result, runtime_ms: runtime_ms, impacted_files: (@impacted_file_tracker.save_payload if successful?), }.compact end |
#should_run? ⇒ Boolean
20 21 22 |
# File 'lib/diff_test/test_execution.rb', line 20 def should_run? should_run_decider_result[:should_run] end |
#should_run_decider_result ⇒ Object
16 17 18 |
# File 'lib/diff_test/test_execution.rb', line 16 def should_run_decider_result @should_run_decider_result ||= DiffTest::ShouldRunDecider.should_run?(id, system_test: system_test?) end |
#skipped! ⇒ Object
62 63 64 |
# File 'lib/diff_test/test_execution.rb', line 62 def skipped! @result = :skipped end |
#skipped? ⇒ Boolean
78 79 80 |
# File 'lib/diff_test/test_execution.rb', line 78 def skipped? @result == :skipped end |
#start ⇒ Object
41 42 43 44 45 |
# File 'lib/diff_test/test_execution.rb', line 41 def start DiffTest::Helper.log("TestExecution.start: #{id}") @impacted_file_tracker.start @started_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) end |
#stop ⇒ Object
47 48 49 50 51 52 |
# File 'lib/diff_test/test_execution.rb', line 47 def stop @impacted_file_tracker.stop @stopped_at = Process.clock_gettime(Process::CLOCK_MONOTONIC) DiffTest::Helper.log("TestExecution.stop: #{id}") finish end |
#successful? ⇒ Boolean
82 83 84 |
# File 'lib/diff_test/test_execution.rb', line 82 def successful? passed? || skipped? end |
#system_test? ⇒ Boolean
91 92 93 |
# File 'lib/diff_test/test_execution.rb', line 91 def system_test? DiffTest.configuration.system_test_paths.include?(@test_file_path) end |