36 lines
1006 B
Markdown
36 lines
1006 B
Markdown
# Orchestrator end-to-end tests
|
|
|
|
End-to-end tests run every external dependency for real (MongoDB, Redis, PostgreSQL via testcontainers; SMTP via in-process `aiosmtpd`; Temporal via `WorkflowEnvironment.start_local()`).
|
|
|
|
## Requirements
|
|
|
|
- Docker (for testcontainers)
|
|
- Python dev dependencies: `pip install -r requirements-dev.txt`
|
|
|
|
## Run locally
|
|
|
|
```bash
|
|
source ./venv/bin/activate
|
|
pytest e2e/ --override-ini testpaths=e2e -m e2e -v
|
|
```
|
|
|
|
Stop on first failure:
|
|
|
|
```bash
|
|
pytest e2e/ --override-ini testpaths=e2e -m e2e -x
|
|
```
|
|
|
|
## Coverage (separate from unit tests)
|
|
|
|
```bash
|
|
COVERAGE_FILE=.coverage.e2e pytest e2e/ --override-ini testpaths=e2e -m e2e --cov=orchestrator --cov-branch
|
|
coverage combine .coverage .coverage.e2e
|
|
coverage report
|
|
```
|
|
|
|
Unit tests keep the default `.coverage` file; the E2E run must set `COVERAGE_FILE=.coverage.e2e` so reports do not overwrite each other.
|
|
|
|
## Scenario catalog
|
|
|
|
See [scenarios.md](scenarios.md) for numbered scenarios and which test module implements each case.
|