LightRAG/logs/2024-11-30-17-35-beastmode-e2e-runner-improvement.md
2025-12-05 14:31:13 +08:00

2.1 KiB

Task Log: E2E Test Script Runner Improvement

Date: 2024-11-30-17-35 Mode: beastmode-chatmode Task: Improve e2e test script runner with better UX, backend selection, and test case filtering

Actions

  • Analyzed existing run_isolation_test.sh script structure and e2e test files
  • Created new run_tests.sh with enhanced features (bash 3.2 compatible for macOS)
  • Added interactive mode with menu-driven selection
  • Added comprehensive help system with usage examples
  • Added dry-run mode for configuration preview
  • Added test and backend listing functionality
  • Updated e2e/README.md with full documentation

Decisions

  • Used parallel arrays instead of associative arrays for bash 3.2 compatibility (macOS default)
  • Kept original run_isolation_test.sh for backward compatibility
  • Used descriptive emojis and colors for better visual feedback
  • Added --skip-server and --keep-server flags for debugging workflows

New Features

  • -i, --interactive - Interactive menu for backend/test selection
  • -b, --backend - Backend selection (file, postgres, all)
  • -t, --tests - Test selection (isolation, deletion, mixed, all)
  • -l, --list - List available tests and backends
  • --dry-run - Preview configuration without executing
  • -v, --verbose / -q, --quiet - Output control
  • --skip-server / --keep-server - Server management options
  • -m, --llm-model - Custom LLM model
  • -e, --embedding-model - Custom embedding model
  • -p, --port - Custom server port

Files Modified

  • /e2e/run_tests.sh - NEW: Enhanced test runner (30KB, 700+ lines)
  • /e2e/README.md - UPDATED: Comprehensive documentation

Next Steps

  • Users can now run tests interactively with ./e2e/run_tests.sh -i
  • Run specific tests with ./e2e/run_tests.sh -t isolation
  • Test PostgreSQL backend with ./e2e/run_tests.sh -b postgres

Lessons/Insights

  • macOS ships with bash 3.2 which doesn't support associative arrays
  • Using parallel arrays provides same functionality with broader compatibility
  • Dry-run mode is essential for complex scripts to preview configuration