class Tryouts::FailureCollector
Similar to RSpec’s failure summary at the end of test runs
Collects and organizes failed test results across files for summary display
def add_failure(file_path, result_packet)
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
def all_failures
def all_failures @failures.dup end
def any_failures?
def any_failures? !@failures.empty? end
def clear
def clear @failures.clear @files_with_failures.clear end
def error_count
def error_count @failures.count { |f| f.result_packet.error? } end
def failure_count
def failure_count @failures.count { |f| f.result_packet.failed? } end
def failures_by_file
def failures_by_file @failures.group_by(&:file_path).transform_values do |file_failures| file_failures.sort_by(&:line_number) end end
def files_with_failures_count
def files_with_failures_count @files_with_failures.size end
def initialize
def initialize @failures = [] @files_with_failures = Set.new end
def total_issues
def total_issues @failures.size end