Class: Aidp::Harness::TestRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/aidp/harness/test_runner.rb

Overview

Executes test and linter commands configured in aidp.yml Returns results with exit status and output Applies intelligent output filtering to reduce token consumption

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(project_dir, config) ⇒ TestRunner

Returns a new instance of TestRunner.



14
15
16
17
18
19
# File 'lib/aidp/harness/test_runner.rb', line 14

def initialize(project_dir, config)
  @project_dir = project_dir
  @config = config
  @iteration_count = 0
  @filter_stats = {total_input_bytes: 0, total_output_bytes: 0}
end

Instance Attribute Details

#filter_statsObject (readonly)

Get filtering statistics



69
70
71
# File 'lib/aidp/harness/test_runner.rb', line 69

def filter_stats
  @filter_stats
end

#iteration_countObject (readonly)

Get current iteration count



66
67
68
# File 'lib/aidp/harness/test_runner.rb', line 66

def iteration_count
  @iteration_count
end

Instance Method Details

#planned_commandsObject

Preview the commands that will run for each category so callers can log intent Returns a hash of category => array of normalized command entries



55
56
57
58
59
60
61
62
63
# File 'lib/aidp/harness/test_runner.rb', line 55

def planned_commands
  {
    tests: resolved_commands(:test),
    lints: resolved_commands(:lint),
    formatters: resolved_commands(:formatter),
    builds: resolved_commands(:build),
    docs: resolved_commands(:documentation)
  }
end

#reset_iteration_countObject

Reset iteration counter (useful for testing)



72
73
74
# File 'lib/aidp/harness/test_runner.rb', line 72

def reset_iteration_count
  @iteration_count = 0
end

#run_buildsObject

Run all configured build commands Returns: { success: boolean, output: string, failures: array, required_failures: array }



43
44
45
# File 'lib/aidp/harness/test_runner.rb', line 43

def run_builds
  run_command_category(:build, "Build")
end

#run_documentationObject

Run all configured documentation commands Returns: { success: boolean, output: string, failures: array, required_failures: array }



49
50
51
# File 'lib/aidp/harness/test_runner.rb', line 49

def run_documentation
  run_command_category(:documentation, "Documentation")
end

#run_formattersObject

Run all configured formatters Returns: { success: boolean, output: string, failures: array, required_failures: array }



37
38
39
# File 'lib/aidp/harness/test_runner.rb', line 37

def run_formatters
  run_command_category(:formatter, "Formatters")
end

#run_lintersObject

Run all configured linters Returns: { success: boolean, output: string, failures: array, required_failures: array }



30
31
32
33
# File 'lib/aidp/harness/test_runner.rb', line 30

def run_linters
  @iteration_count += 1
  run_command_category(:lint, "Linters")
end

#run_testsObject

Run all configured tests Returns: { success: boolean, output: string, failures: array, required_failures: array }



23
24
25
26
# File 'lib/aidp/harness/test_runner.rb', line 23

def run_tests
  @iteration_count += 1
  run_command_category(:test, "Tests")
end