- Modified `.gitignore` to reflect the new path for test results. - Updated `docker-compose.test.yml` to mount the correct test results directory. - Adjusted `Dockerfile.test` to set the `PYTHONPATH` and ensure test results are saved in the updated location. - Added `boto3` and `netron` to `requirements-test.txt` to support new functionalities. - Updated `pytest.ini` to include the new `pythonpath` for test discovery. These changes streamline the testing process and ensure compatibility with the updated directory structure.
2.6 KiB
Phase 5: Test Synchronization
Role: QA engineer and developer Goal: Reconcile the test suite with the refactored codebase — remove obsolete tests, update broken tests, add tests for new code Constraints: All tests must pass at the end of this phase. Do not change production code here — only tests.
Skip condition: If the run name contains testability, skip Phase 5 entirely — no test suite exists yet to synchronize. Proceed directly to Phase 6.
5a. Identify Obsolete Tests
- Compare the pre-refactoring codebase structure (from Phase 0 inventory) with the current state
- Find tests that reference removed functions, classes, modules, or endpoints
- Find tests that duplicate coverage due to merged/consolidated code
- Decide per test: delete (functionality removed) or merge (duplicates)
Write RUN_DIR/test_sync/obsolete_tests.md:
- Test file, test name, reason (target removed / target merged / duplicate coverage), action taken (deleted / merged into)
5b. Update Existing Tests
- Run the full test suite — collect failures and errors
- For each failing test, determine the cause:
- Renamed/moved function or module → update import paths and references
- Changed function signature → update call sites and assertions
- Changed behavior (intentional per refactoring plan) → update expected values
- Changed data structures → update fixtures and assertions
- Fix each test, re-run to confirm it passes
Write RUN_DIR/test_sync/updated_tests.md:
- Test file, test name, change type (import path / signature / assertion / fixture), description of update
5c. Add New Tests
- Identify new code introduced during Phase 4 that lacks test coverage:
- New public functions, classes, or modules
- New interfaces or abstractions introduced during decoupling
- New error handling paths
- Write tests following the same patterns and conventions as the existing test suite
- Ensure coverage targets from Phase 3 are maintained or improved
Write RUN_DIR/test_sync/new_tests.md:
- Test file, test name, target function/module, coverage type (unit / integration / blackbox)
Self-verification:
- All obsolete tests removed or merged
- All pre-existing tests pass after updates
- New code from Phase 4 has test coverage
- Overall coverage meets or exceeds Phase 3 baseline (75% overall, 90% critical paths)
- No tests reference removed or renamed code
Save action: Write test_sync artifacts; implemented tests go into the project's test folder
GATE (BLOCKING): ALL tests must pass before proceeding to Phase 6. If tests fail, fix the tests or ask user for guidance.