class Tryouts::TestBatch

def execute_fresh_context_setup

Setup execution for fresh context mode - creates @setup_container with @instance_variables
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