From f9aed0ff9887455302268ab5ed5a0923ae069170 Mon Sep 17 00:00:00 2001 From: WilliamK112 <164879897+WilliamK112@users.noreply.github.com> Date: Wed, 12 Aug 2026 17:54:34 +0800 Subject: [PATCH] docs: add per-module coverage target Signed-off-by: WilliamK112 <164879897+WilliamK112@users.noreply.github.com> --- Makefile | 8 +++++++- docs/community/contributor-roadmap.md | 6 ++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ea666789..21a021be 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 bf71006f..c6146a4b 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),