pytest skill
This commit is contained in:
@@ -51,7 +51,6 @@ Use this for all stacks first:
|
|||||||
|
|
||||||
Load next reference only if needed:
|
Load next reference only if needed:
|
||||||
- Baseline details and rationale: [pytest-docs.md](./references/pytest-docs.md)
|
- Baseline details and rationale: [pytest-docs.md](./references/pytest-docs.md)
|
||||||
- Condensed quick path variant: [pytest-docs copy.md](./references/pytest-docs copy.md)
|
|
||||||
|
|
||||||
### Level 2: FastAPI branch (only for HTTP/dependency/lifespan concerns)
|
### Level 2: FastAPI branch (only for HTTP/dependency/lifespan concerns)
|
||||||
Escalate here when testing API routes, dependency injection boundaries, or app lifespan behavior.
|
Escalate here when testing API routes, dependency injection boundaries, or app lifespan behavior.
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
# Pytest Documentation Notes
|
|
||||||
|
|
||||||
Primary references used:
|
|
||||||
- https://docs.pytest.org/en/stable/explanation/goodpractices.html
|
|
||||||
- https://docs.pytest.org/en/stable/how-to/fixtures.html
|
|
||||||
- https://docs.pytest.org/en/stable/example/markers.html
|
|
||||||
- https://docs.pytest.org/en/stable/reference/customize.html
|
|
||||||
- https://docs.pytest.org/en/stable/explanation/flaky.html
|
|
||||||
|
|
||||||
## Agent Quick Path
|
|
||||||
Use this file when you need fast pytest scaffolding defaults without framework-specific details.
|
|
||||||
|
|
||||||
1. Mirror source layout under `tests/`.
|
|
||||||
2. Keep fixtures small and explicit; default to `function` scope.
|
|
||||||
3. Register markers up front in `pyproject.toml`.
|
|
||||||
4. Validate structure first with `uv run pytest --collect-only -q`.
|
|
||||||
5. Run fast lane with `uv run pytest -m unit -q`.
|
|
||||||
|
|
||||||
Load other references only when needed:
|
|
||||||
- FastAPI routes/dependency injection/lifespan: `fastapi-testing.md`
|
|
||||||
- SQLAlchemy sessions/transactions/DB fixtures: `sqlalchemy-testing.md`
|
|
||||||
|
|
||||||
## Practical Guidance For This Skill
|
|
||||||
- Use src-aligned test layout and keep test discovery conventional.
|
|
||||||
- Keep fixtures small, composable, and explicit; use `yield` for teardown.
|
|
||||||
- Register custom markers and keep strict marker validation on.
|
|
||||||
- Separate quick unit runs from slower integration/external runs.
|
|
||||||
- Minimize flakiness by controlling shared state and avoiding hidden dependencies.
|
|
||||||
- Use `--collect-only` and marker-filtered runs to validate scaffold quality early.
|
|
||||||
|
|
||||||
## Commands Worth Remembering
|
|
||||||
- `uv run pytest --collect-only -q`
|
|
||||||
- `uv run pytest -m unit -q`
|
|
||||||
- `uv run pytest -m "not external" -q`
|
|
||||||
- `uv run pytest -q`
|
|
||||||
@@ -7,6 +7,19 @@
|
|||||||
- [Configuration reference](https://docs.pytest.org/en/stable/reference/customize.html)
|
- [Configuration reference](https://docs.pytest.org/en/stable/reference/customize.html)
|
||||||
- [Flaky tests](https://docs.pytest.org/en/stable/explanation/flaky.html)
|
- [Flaky tests](https://docs.pytest.org/en/stable/explanation/flaky.html)
|
||||||
|
|
||||||
|
## Agent Quick Path
|
||||||
|
Use this file when you need fast pytest scaffolding defaults without framework-specific details.
|
||||||
|
|
||||||
|
1. Mirror source layout under `tests/`.
|
||||||
|
2. Keep fixtures small and explicit; default to `function` scope.
|
||||||
|
3. Register markers up front in `pyproject.toml`.
|
||||||
|
4. Validate structure first with `uv run pytest --collect-only -q`.
|
||||||
|
5. Run fast lane with `uv run pytest -m unit -q`.
|
||||||
|
|
||||||
|
Load other references only when needed:
|
||||||
|
- FastAPI routes/dependency injection/lifespan: `fastapi-testing.md`
|
||||||
|
- SQLAlchemy sessions/transactions/DB fixtures: `sqlalchemy-testing.md`
|
||||||
|
|
||||||
## Practical Guidance For This Skill
|
## Practical Guidance For This Skill
|
||||||
- Use src-aligned test layout and keep test discovery conventional.
|
- Use src-aligned test layout and keep test discovery conventional.
|
||||||
- Keep fixtures small, composable, and explicit; use `yield` for teardown.
|
- Keep fixtures small, composable, and explicit; use `yield` for teardown.
|
||||||
|
|||||||
Reference in New Issue
Block a user