ace-test-runner 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.ace-defaults/test/runner.yml +35 -0
  3. data/.ace-defaults/test/suite.yml +31 -0
  4. data/.ace-defaults/test-runner/config.yml +61 -0
  5. data/CHANGELOG.md +626 -0
  6. data/LICENSE +21 -0
  7. data/README.md +42 -0
  8. data/Rakefile +14 -0
  9. data/exe/ace-test +26 -0
  10. data/exe/ace-test-suite +149 -0
  11. data/lib/ace/test_runner/atoms/command_builder.rb +165 -0
  12. data/lib/ace/test_runner/atoms/lazy_loader.rb +62 -0
  13. data/lib/ace/test_runner/atoms/line_number_resolver.rb +86 -0
  14. data/lib/ace/test_runner/atoms/report_directory_resolver.rb +48 -0
  15. data/lib/ace/test_runner/atoms/report_path_resolver.rb +67 -0
  16. data/lib/ace/test_runner/atoms/result_parser.rb +254 -0
  17. data/lib/ace/test_runner/atoms/test_detector.rb +114 -0
  18. data/lib/ace/test_runner/atoms/test_folder_detector.rb +53 -0
  19. data/lib/ace/test_runner/atoms/test_type_detector.rb +83 -0
  20. data/lib/ace/test_runner/atoms/timestamp_generator.rb +103 -0
  21. data/lib/ace/test_runner/cli/commands/test.rb +326 -0
  22. data/lib/ace/test_runner/cli.rb +16 -0
  23. data/lib/ace/test_runner/formatters/base_formatter.rb +102 -0
  24. data/lib/ace/test_runner/formatters/json_formatter.rb +90 -0
  25. data/lib/ace/test_runner/formatters/markdown_formatter.rb +91 -0
  26. data/lib/ace/test_runner/formatters/progress_file_formatter.rb +164 -0
  27. data/lib/ace/test_runner/formatters/progress_formatter.rb +328 -0
  28. data/lib/ace/test_runner/models/test_configuration.rb +165 -0
  29. data/lib/ace/test_runner/models/test_failure.rb +95 -0
  30. data/lib/ace/test_runner/models/test_group.rb +105 -0
  31. data/lib/ace/test_runner/models/test_report.rb +145 -0
  32. data/lib/ace/test_runner/models/test_result.rb +86 -0
  33. data/lib/ace/test_runner/molecules/cli_argument_parser.rb +263 -0
  34. data/lib/ace/test_runner/molecules/config_loader.rb +162 -0
  35. data/lib/ace/test_runner/molecules/deprecation_fixer.rb +204 -0
  36. data/lib/ace/test_runner/molecules/failed_package_reporter.rb +100 -0
  37. data/lib/ace/test_runner/molecules/failure_analyzer.rb +249 -0
  38. data/lib/ace/test_runner/molecules/in_process_runner.rb +249 -0
  39. data/lib/ace/test_runner/molecules/package_resolver.rb +106 -0
  40. data/lib/ace/test_runner/molecules/pattern_resolver.rb +146 -0
  41. data/lib/ace/test_runner/molecules/rake_integration.rb +218 -0
  42. data/lib/ace/test_runner/molecules/report_storage.rb +303 -0
  43. data/lib/ace/test_runner/molecules/smart_test_executor.rb +107 -0
  44. data/lib/ace/test_runner/molecules/test_executor.rb +162 -0
  45. data/lib/ace/test_runner/organisms/agent_reporter.rb +384 -0
  46. data/lib/ace/test_runner/organisms/report_generator.rb +151 -0
  47. data/lib/ace/test_runner/organisms/sequential_group_executor.rb +185 -0
  48. data/lib/ace/test_runner/organisms/test_orchestrator.rb +648 -0
  49. data/lib/ace/test_runner/rake_task.rb +90 -0
  50. data/lib/ace/test_runner/suite/display_helpers.rb +117 -0
  51. data/lib/ace/test_runner/suite/display_manager.rb +204 -0
  52. data/lib/ace/test_runner/suite/duration_estimator.rb +50 -0
  53. data/lib/ace/test_runner/suite/orchestrator.rb +120 -0
  54. data/lib/ace/test_runner/suite/process_monitor.rb +268 -0
  55. data/lib/ace/test_runner/suite/result_aggregator.rb +176 -0
  56. data/lib/ace/test_runner/suite/simple_display_manager.rb +122 -0
  57. data/lib/ace/test_runner/suite.rb +22 -0
  58. data/lib/ace/test_runner/version.rb +7 -0
  59. data/lib/ace/test_runner.rb +69 -0
  60. metadata +246 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 467d1a03ce2855ec8a99d826276a02657f205e9f0fdacdcf82b2820ec025c314
4
+ data.tar.gz: 8c04f421691546206b9ff8c40c42090c9c02a123d79e01caaebcaacaa989834b
5
+ SHA512:
6
+ metadata.gz: f65d85cd9b93d92c12f9157332f9d6ebc3b37494ca460c35c88a8e3c2fbdfdbd8cf44f9956724517526b24bcb268b6941e455c874ee73a3b39488de322eca9da
7
+ data.tar.gz: 129289d67cfa53a6ab7264112b4c6ed2f371e01b6f03e4d4bdc628ad13f3c1c4118dd6ba4c718389aca4eddab7252192d6317d1640c0afc4c787d0ab5858502b
@@ -0,0 +1,35 @@
1
+ # ace-test-runner configuration
2
+ # Copy to .ace/test/runner.yml if you need to override defaults
3
+
4
+ test:
5
+ # Output format: progress, progress-file, or json
6
+ format: progress
7
+
8
+ # Test reports directory
9
+ report_dir: .ace-local/test/reports
10
+ save_reports: true
11
+
12
+ # Test execution options
13
+ fail_fast: false
14
+ verbose: false
15
+ parallel: false
16
+ color: true
17
+
18
+ # Timeout in seconds (nil = no timeout)
19
+ timeout: null
20
+
21
+ # Test file patterns (optional - has good defaults)
22
+ # patterns:
23
+ # smoke: "test/*_test.rb" # Root-level smoke tests
24
+ # atoms: "test/atoms/**/*_test.rb"
25
+ # molecules: "test/molecules/**/*_test.rb"
26
+ # organisms: "test/organisms/**/*_test.rb"
27
+ # models: "test/models/**/*_test.rb"
28
+ # integration: "test/integration/**/*_test.rb"
29
+ # system: "test/system/**/*_test.rb"
30
+ #
31
+ # Test groups (optional - has good defaults)
32
+ # groups:
33
+ # unit: [smoke, atoms, molecules, organisms, models]
34
+ # all: [unit, integration, system]
35
+ # quick: [atoms, molecules]
@@ -0,0 +1,31 @@
1
+ # Example test suite configuration
2
+ # Copy to .ace/test/suite.yml in your project and customize
3
+
4
+ test_suite:
5
+ # Maximum parallel test processes
6
+ max_parallel: 10
7
+
8
+ # Packages to test (for monorepos or multi-package projects)
9
+ packages:
10
+ - name: your-package
11
+ path: . # Path relative to project root
12
+ group: main # Group for selective testing
13
+ priority: 1 # Lower number = higher priority
14
+
15
+ # Add more packages as needed:
16
+ # - name: another-package
17
+ # path: packages/another
18
+ # group: utilities
19
+ # priority: 2
20
+
21
+ # Test execution options
22
+ test_options:
23
+ format: compact # Output format: compact, verbose, json
24
+ save_reports: true # Save test reports to .ace-local/test/reports/
25
+ report_dir: .ace-local/test/reports
26
+ fail_fast: false # Stop on first failure
27
+
28
+ # Display settings (optional)
29
+ display:
30
+ show_progress: true
31
+ color: true
@@ -0,0 +1,61 @@
1
+ # ace-test-runner default configuration
2
+ # ADR-022: This file is the single source of truth for defaults
3
+ #
4
+ # Configuration cascade:
5
+ # 1. .ace-defaults/test-runner/config.yml (gem defaults - this file)
6
+ # 2. ~/.ace/test/runner.yml (user defaults)
7
+ # 3. .ace/test/runner.yml (project overrides)
8
+ # 4. CLI options (highest priority)
9
+
10
+ version: 1
11
+
12
+ # Test file patterns for each category
13
+ # Supports both test/unit/atoms and test/atoms directory structures
14
+ patterns:
15
+ smoke: "test/{unit/,}smoke/**/*_test.rb"
16
+ atoms: "test/{unit/,}atoms/**/*_test.rb"
17
+ molecules: "test/{unit/,}molecules/**/*_test.rb"
18
+ organisms: "test/{unit/,}organisms/**/*_test.rb"
19
+ models: "test/{unit/,}models/**/*_test.rb"
20
+ commands: "test/{unit/,}commands/**/*_test.rb"
21
+ cli: "test/{unit/,}cli/**/*_test.rb"
22
+ prompts: "test/{unit/,}prompts/**/*_test.rb"
23
+ fixtures: "test/{unit/,}fixtures/**/*_test.rb"
24
+ support: "test/{unit/,}support/**/*_test.rb"
25
+ edge: "test/{unit/,}edge/**/*_test.rb"
26
+ integration: "test/integration/**/*_test.rb"
27
+ system: "test/system/**/*_test.rb"
28
+
29
+ # Test groups that combine multiple patterns
30
+ groups:
31
+ unit:
32
+ - smoke
33
+ - atoms
34
+ - molecules
35
+ - organisms
36
+ - models
37
+ - commands
38
+ - cli
39
+ - prompts
40
+ - fixtures
41
+ - support
42
+ - edge
43
+ all:
44
+ - unit
45
+ - integration
46
+ - system
47
+ quick:
48
+ - atoms
49
+ - molecules
50
+
51
+ # Default execution options
52
+ defaults:
53
+ reporter: progress
54
+ color: auto
55
+ fail_fast: false
56
+ save_reports: true
57
+ report_dir: .ace-local/test/reports
58
+
59
+ # Failure display limits
60
+ failure_limits:
61
+ max_display: 7