Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@ jobs:
simulation-tests:
name: Simulation tests
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4

Expand Down
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,12 @@ pip install -e ".[dev]"

### Running Tests

The test suite uses three pytest markers:

- `@pytest.mark.unit` -- fast, isolated tests (run by default in the `Unit tests` CI job).
- `@pytest.mark.simulation` -- scenario-based tests that exercise the building simulator end-to-end. These run in the `Simulation tests` CI job and **block merge on failure**.
- `@pytest.mark.slow` -- longer-running scenarios (capped at a 3-day horizon). These still run in CI as part of the simulation job; locally you can skip them with `-m "not slow"` for a faster feedback loop.

```bash
# All tests
pytest
Expand All @@ -241,10 +247,15 @@ pytest tests/unit/
# Simulation scenarios (slower, includes full-year runs)
pytest tests/simulation/

# Simulation scenarios (fast subset, skip 3-day slow tier)
pytest tests/simulation/ -m "simulation and not slow"

# With coverage
pytest --cov=pumpahead --cov-report=html
```

The CI `Simulation tests` job is a hard gate -- any simulation regression blocks merge to `master`.

### Code Quality

```bash
Expand Down
Loading