class Tryouts::TestBatch
def execute_fresh_context_setup
def execute_fresh_context_setup setup = @testrun.setup if setup && !setup.code.empty? && !@options[:shared_context] @output_manager&.setup_start(setup.line_range) # Create setup container to hold @instance_variables @setup_container = Object.new # Capture setup output instead of letting it print directly captured_output = capture_output do @setup_container.instance_eval(setup.code, setup.path, setup.line_range.first + 1) end @output_manager&.setup_output(captured_output) if captured_output && !captured_output.empty? end rescue StandardError => ex @setup_failed = true @global_tally[:total_errors] += 1 if @global_tally # Classify error and handle appropriately error_type = Tryouts.classify_error(ex) Tryouts.debug "Setup failed with #{error_type} error: (#{ex.class}): #{ex.message}" Tryouts.trace ex.backtrace # For non-catastrophic errors, we still stop batch execution unless Tryouts.batch_stopping_error?(ex) @output_manager&.error("Fresh context setup failed: #{ex.message}") return end # For catastrophic errors, still raise to stop execution raise "Fresh context setup failed (#{ex.class}): #{ex.message}" end