diff --git a/AUTHORING.md b/AUTHORING.md index 0c0300281..d00b77370 100644 --- a/AUTHORING.md +++ b/AUTHORING.md @@ -1450,9 +1450,12 @@ This project uses [uv](https://docs.astral.sh/uv/) for dependency management: # Install dependencies for the entire workspace uv sync --all-packages -# Run all tests and type/code quality checks +# Run the tests affected by your changes, plus type/code quality checks make check +# Run every test, regardless of what changed +make test-all + # Run tests for a specific package uv run pytest packages/overture-schema-theme-buildings/ @@ -1460,6 +1463,17 @@ uv run pytest packages/overture-schema-theme-buildings/ uv run pytest -k "buildings" ``` +`make check` and `make test` select tests with +[pytest-testmon](https://testmon.org/). Testmon records which code each test ran (in +`.testmondata`) and runs only the tests whose code has changed since they last passed. Its +record is independent of git: an uncommitted edit that an earlier run already tested +counts as clean. So when `make check` prints `no tests ran` and exits 0, every test that +touches the current code has passed against it. The suite wasn't skipped. + +Testmon tracks Python code, not data. A change to a golden baseline file or to the +`[[examples.]]` tables in a theme's `pyproject.toml` selects no tests, so run +`make test-all` after one. + Auto-format / fix code to align with project expectations: ```shell diff --git a/README.md b/README.md index 9f2fd167c..f53b11ee5 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ These pages are for people working with the packages in code: - [GLOSSARY.md](GLOSSARY.md) — vocabulary for both the data model (entity, feature type, theme) and the Python toolchain (entry point, workspace, discriminated union). -Run the full test and quality suite with: +Run the tests affected by your changes, plus the quality checks, with: ```bash make check