diff --git a/Makefile b/Makefile index ea66678..21a021b 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ PY ?= python # cannot be .PHONY; the delegated targets are .PHONY inside training/Makefile). .PHONY: help benchmark benchmark-ci benchmark-report benchmark-fixtures benchmark-test \ cleanbench-full truthbench-release truthbench-pr performance-ci \ - performance-baseline performance-profile performance-report + performance-baseline performance-profile performance-report coverage-report help: @echo "Targets:" @@ -22,8 +22,14 @@ help: @echo " performance-baseline Run the performance investigation matrix" @echo " performance-profile Profile one 100k-row performance case" @echo " performance-report Analyze and render compact performance evidence" + @echo " coverage-report Show per-module coverage for the fast test lane" @echo " training-* Phase-5 training pipeline (see training/Makefile)" +# Run the same test scope as the required PR lane and print uncovered lines for +# every measured module so contributors can identify useful testing targets. +coverage-report: + $(PY) -m pytest -m "not online and not large" --cov-report=term-missing + # Full release-gating CleanBench run. cleanbench-full: $(PY) -m benchmarks.cleanbench --tracks T1,T2,T3,T4,T5 --report site --check-gates diff --git a/docs/community/contributor-roadmap.md b/docs/community/contributor-roadmap.md index bf71006..c6146a4 100644 --- a/docs/community/contributor-roadmap.md +++ b/docs/community/contributor-roadmap.md @@ -63,6 +63,12 @@ Docs changes are the fastest way to make a real, mergeable contribution. freshdata enforces a 93% coverage gate, so tests are always welcome — especially "does not fire when it shouldn't" cases and fixtures. +- Run `make coverage-report` to execute the fast test lane and print a per-module + table of missed lines. Modules with the lowest coverage are good places to + look for valuable new tests. The semantic-consistency and execution-abstraction + modules are current priorities; use the live report rather than a hard-coded + percentage, and check their existing tests before choosing a case so you add + behavioral coverage rather than duplicate assertions. - Add [benchmark preservation / trust-monotonicity / export tests (#82)](https://github.com/FreshCode-Org/freshdata/issues/82). - Add synthetic fixture generators: [CRM & finance (#77)](https://github.com/FreshCode-Org/freshdata/issues/77),