feat: add standardized testing scripts and documentation

Add comprehensive suite of testing scripts for different workflows:
- test.sh: Interactive menu for all testing operations
- quick_test.sh: Fast unit test feedback (~10-30s)
- run_tests.sh: Main test runner with full configuration options
- coverage_report.sh: Coverage analysis with HTML/JSON/terminal reports
- ci_test.sh: CI/CD optimized testing with JUnit/coverage XML output

Features:
- Colored terminal output with clear error messages
- Consistent option flags across all scripts
- Support for test markers (unit, integration, e2e, slow, etc.)
- Parallel execution support
- Coverage thresholds (default: 85%)
- Virtual environment and dependency checks

Documentation:
- Update CLAUDE.md with testing section and examples
- Expand docs/developer/testing.md with comprehensive guide
- Add scripts/README.md with quick reference

All scripts are tested and executable. This standardizes the testing
process for local development, CI/CD, and pull request workflows.
This commit is contained in:
2025-11-03 21:39:41 -05:00
parent 84320ab8a5
commit 923cdec5ca
12 changed files with 1467 additions and 48 deletions

View File

@@ -55,7 +55,7 @@ def test_complete_async_download_flow(test_client, monkeypatch):
monkeypatch.setattr("api.price_data_manager.PriceDataManager", MockPriceManager)
# Mock execution to avoid actual trading
def mock_execute_date(self, date, models, config_path):
def mock_execute_date(self, date, models, config_path, completion_skips=None):
# Update job details to simulate successful execution
from api.job_manager import JobManager
job_manager = JobManager(db_path=test_client.app.state.db_path)
@@ -155,7 +155,7 @@ def test_flow_with_partial_data(test_client, monkeypatch):
monkeypatch.setattr("api.price_data_manager.PriceDataManager", MockPriceManagerPartial)
def mock_execute_date(self, date, models, config_path):
def mock_execute_date(self, date, models, config_path, completion_skips=None):
# Update job details to simulate successful execution
from api.job_manager import JobManager
job_manager = JobManager(db_path=test_client.app.state.db_path)