Class: Tryouts::TestCaseResultPacket
- Inherits:
-
Data
- Object
- Data
- Tryouts::TestCaseResultPacket
- Defined in:
- lib/tryouts/test_case.rb
Overview
Test case result packet for formatters Replaces the simple Hash aggregation with a rich, immutable data structure containing all execution context and results needed by formatters
Instance Attribute Summary collapse
-
#actual_results ⇒ Object
readonly
Returns the value of attribute actual_results.
-
#captured_output ⇒ Object
readonly
Returns the value of attribute captured_output.
-
#elapsed_time ⇒ Object
readonly
Returns the value of attribute elapsed_time.
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#expected_results ⇒ Object
readonly
Returns the value of attribute expected_results.
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
-
#result_value ⇒ Object
readonly
Returns the value of attribute result_value.
-
#status ⇒ Object
readonly
Returns the value of attribute status.
-
#test_case ⇒ Object
readonly
Returns the value of attribute test_case.
Class Method Summary collapse
-
.from_error(test_case, error, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a result packet for error cases.
-
.from_failure(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a result packet for failed tests.
-
.from_success(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a basic result packet for successful tests.
Instance Method Summary collapse
- #error? ⇒ Boolean
- #failed? ⇒ Boolean
-
#first_actual ⇒ Object
Helper for formatter access to first actual/expected values.
- #first_expected ⇒ Object
- #has_error? ⇒ Boolean
- #has_output? ⇒ Boolean
- #passed? ⇒ Boolean
Instance Attribute Details
#actual_results ⇒ Object (readonly)
Returns the value of attribute actual_results
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def actual_results @actual_results end |
#captured_output ⇒ Object (readonly)
Returns the value of attribute captured_output
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def captured_output @captured_output end |
#elapsed_time ⇒ Object (readonly)
Returns the value of attribute elapsed_time
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def elapsed_time @elapsed_time end |
#error ⇒ Object (readonly)
Returns the value of attribute error
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def error @error end |
#expected_results ⇒ Object (readonly)
Returns the value of attribute expected_results
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def expected_results @expected_results end |
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def @metadata end |
#result_value ⇒ Object (readonly)
Returns the value of attribute result_value
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def result_value @result_value end |
#status ⇒ Object (readonly)
Returns the value of attribute status
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def status @status end |
#test_case ⇒ Object (readonly)
Returns the value of attribute test_case
131 132 133 |
# File 'lib/tryouts/test_case.rb', line 131 def test_case @test_case end |
Class Method Details
.from_error(test_case, error, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a result packet for error cases
202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
# File 'lib/tryouts/test_case.rb', line 202 def self.from_error(test_case, error, captured_output: nil, elapsed_time: nil, metadata: {}) = error ? error. : '<exception is nil>' # Include backtrace in error message when stack traces are enabled error_display = if error && Tryouts.stack_traces? backtrace_preview = Console.pretty_backtrace(error.backtrace, limit: 3).join("\n ") "(#{error.class}) #{}\n #{backtrace_preview}" else "(#{error.class}) #{}" end new( test_case: test_case, status: :error, result_value: nil, actual_results: [error_display], expected_results: [], error: error, captured_output: captured_output, elapsed_time: elapsed_time, metadata: , ) end |
.from_failure(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a result packet for failed tests
187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/tryouts/test_case.rb', line 187 def self.from_failure(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) new( test_case: test_case, status: :failed, result_value: result_value, actual_results: actual_results, expected_results: expected_results, error: nil, captured_output: captured_output, elapsed_time: elapsed_time, metadata: , ) end |
.from_success(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) ⇒ Object
Create a basic result packet for successful tests
172 173 174 175 176 177 178 179 180 181 182 183 184 |
# File 'lib/tryouts/test_case.rb', line 172 def self.from_success(test_case, result_value, actual_results, expected_results, captured_output: nil, elapsed_time: nil, metadata: {}) new( test_case: test_case, status: :passed, result_value: result_value, actual_results: actual_results, expected_results: expected_results, error: nil, captured_output: captured_output, elapsed_time: elapsed_time, metadata: , ) end |
Instance Method Details
#error? ⇒ Boolean
150 151 152 |
# File 'lib/tryouts/test_case.rb', line 150 def error? status == :error end |
#failed? ⇒ Boolean
146 147 148 |
# File 'lib/tryouts/test_case.rb', line 146 def failed? status == :failed end |
#first_actual ⇒ Object
Helper for formatter access to first actual/expected values
163 164 165 |
# File 'lib/tryouts/test_case.rb', line 163 def first_actual actual_results&.first end |
#first_expected ⇒ Object
167 168 169 |
# File 'lib/tryouts/test_case.rb', line 167 def first_expected expected_results&.first end |
#has_error? ⇒ Boolean
158 159 160 |
# File 'lib/tryouts/test_case.rb', line 158 def has_error? !error.nil? end |
#has_output? ⇒ Boolean
154 155 156 |
# File 'lib/tryouts/test_case.rb', line 154 def has_output? captured_output && !captured_output.empty? end |
#passed? ⇒ Boolean
142 143 144 |
# File 'lib/tryouts/test_case.rb', line 142 def passed? status == :passed end |