Class: Aidp::Harness::TestRunner
- Inherits:
-
Object
- Object
- Aidp::Harness::TestRunner
- 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
-
#filter_stats ⇒ Object
readonly
Get filtering statistics.
-
#iteration_count ⇒ Object
readonly
Get current iteration count.
Instance Method Summary collapse
-
#initialize(project_dir, config) ⇒ TestRunner
constructor
A new instance of TestRunner.
-
#planned_commands ⇒ Object
Preview the commands that will run for each category so callers can log intent Returns a hash of category => array of normalized command entries.
-
#reset_iteration_count ⇒ Object
Reset iteration counter (useful for testing).
-
#run_builds ⇒ Object
Run all configured build commands Returns: { success: boolean, output: string, failures: array, required_failures: array }.
-
#run_documentation ⇒ Object
Run all configured documentation commands Returns: { success: boolean, output: string, failures: array, required_failures: array }.
-
#run_formatters ⇒ Object
Run all configured formatters Returns: { success: boolean, output: string, failures: array, required_failures: array }.
-
#run_linters ⇒ Object
Run all configured linters Returns: { success: boolean, output: string, failures: array, required_failures: array }.
-
#run_tests ⇒ Object
Run all configured tests Returns: { success: boolean, output: string, failures: array, required_failures: array }.
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_stats ⇒ Object (readonly)
Get filtering statistics
69 70 71 |
# File 'lib/aidp/harness/test_runner.rb', line 69 def filter_stats @filter_stats end |
#iteration_count ⇒ Object (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_commands ⇒ Object
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_count ⇒ Object
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_builds ⇒ Object
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_documentation ⇒ Object
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_formatters ⇒ Object
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_linters ⇒ Object
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_tests ⇒ Object
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 |