Class: Tryouts::FailureCollector
- Inherits:
-
Object
- Object
- Tryouts::FailureCollector
- Defined in:
- lib/tryouts/failure_collector.rb
Overview
Collects and organizes failed test results across files for summary display Similar to RSpec's failure summary at the end of test runs
Defined Under Namespace
Classes: FailureEntry
Instance Method Summary collapse
-
#add_failure(file_path, result_packet) ⇒ Object
Add a failed test result.
-
#all_failures ⇒ Object
Get all failure entries (for detailed processing).
-
#any_failures? ⇒ Boolean
Check if any failures were collected.
-
#clear ⇒ Object
Reset the collector (useful for testing).
-
#error_count ⇒ Object
Get count of total errors.
-
#failure_count ⇒ Object
Get count of total failures.
-
#failures_by_file ⇒ Object
Get failures grouped by file for summary display.
-
#files_with_failures_count ⇒ Object
Get count of files with failures.
-
#initialize ⇒ FailureCollector
constructor
A new instance of FailureCollector.
-
#total_issues ⇒ Object
Get total issues (failures + errors).
Constructor Details
#initialize ⇒ FailureCollector
Returns a new instance of FailureCollector.
49 50 51 52 |
# File 'lib/tryouts/failure_collector.rb', line 49 def initialize @failures = [] @files_with_failures = Set.new end |
Instance Method Details
#add_failure(file_path, result_packet) ⇒ Object
Add a failed test result
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/tryouts/failure_collector.rb', line 55 def add_failure(file_path, result_packet) return unless result_packet.failed? || result_packet.error? entry = FailureEntry.new( file_path: file_path, test_case: result_packet.test_case, result_packet: result_packet, ) @failures << entry @files_with_failures << file_path end |
#all_failures ⇒ Object
Get all failure entries (for detailed processing)
101 102 103 |
# File 'lib/tryouts/failure_collector.rb', line 101 def all_failures @failures.dup end |
#any_failures? ⇒ Boolean
Check if any failures were collected
69 70 71 |
# File 'lib/tryouts/failure_collector.rb', line 69 def any_failures? !@failures.empty? end |
#clear ⇒ Object
Reset the collector (useful for testing)
106 107 108 109 |
# File 'lib/tryouts/failure_collector.rb', line 106 def clear @failures.clear @files_with_failures.clear end |
#error_count ⇒ Object
Get count of total errors
79 80 81 |
# File 'lib/tryouts/failure_collector.rb', line 79 def error_count @failures.count { |f| f.result_packet.error? } end |
#failure_count ⇒ Object
Get count of total failures
74 75 76 |
# File 'lib/tryouts/failure_collector.rb', line 74 def failure_count @failures.count { |f| f.result_packet.failed? } end |
#failures_by_file ⇒ Object
Get failures grouped by file for summary display
94 95 96 97 98 |
# File 'lib/tryouts/failure_collector.rb', line 94 def failures_by_file @failures.group_by(&:file_path).transform_values do |file_failures| file_failures.sort_by(&:line_number) end end |
#files_with_failures_count ⇒ Object
Get count of files with failures
89 90 91 |
# File 'lib/tryouts/failure_collector.rb', line 89 def files_with_failures_count @files_with_failures.size end |
#total_issues ⇒ Object
Get total issues (failures + errors)
84 85 86 |
# File 'lib/tryouts/failure_collector.rb', line 84 def total_issues @failures.size end |