diff mbox series

[wic,v4,3/6] tests: add optional coverage reporting

Message ID 20260706222904.664863-4-twoerner@gmail.com
State New
Headers show
Series tests: standalone test-suite framework plus the first unit test | expand

Commit Message

Trevor Woerner July 6, 2026, 10:29 p.m. UTC
Add branch coverage of the wic source as opt-in just recipes, so a
plain run stays fast and quiet. coverage and pytest-cov join the tests
extra; the coverage recipe prints a terminal report of the lines that
were missed, and coverage-html additionally writes a browsable report
to htmlcov/. .gitignore ignores the .coverage data file and htmlcov/.

AI-Generated: codex/claude-opus 4.8 (xhigh)
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
changes in v4:
- expose coverage through just recipes (coverage, coverage-html)
  rather than run-tests.sh flags.
changes in v3:
- no change in this revision.
changes in v2:
- v1 submitted the entire test suite as a single commit; v2 breaks
  the work into a reviewable series, and this patch is one step of it.
---
 .gitignore     | 2 ++
 justfile       | 8 ++++++++
 pyproject.toml | 2 ++
 3 files changed, 12 insertions(+)
diff mbox series

Patch

diff --git a/.gitignore b/.gitignore
index a0f016bc5823..e30cafa40f7f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@ 
 **/__pycache__
 .pytest_cache/
+.coverage
+htmlcov/
diff --git a/justfile b/justfile
index 41a9d3d236f4..1be3e01e7c7d 100644
--- a/justfile
+++ b/justfile
@@ -8,3 +8,11 @@  default:
 # (e.g. `just tests -k <expr>` or `just tests tests/unit`).
 tests *args:
     pytest {{args}}
+
+# Run the suite with a terminal branch-coverage report for wic.
+coverage *args:
+    pytest {{args}} --cov=wic --cov-branch --cov-report=term-missing
+
+# Run the suite with an HTML coverage report (written to htmlcov/).
+coverage-html *args:
+    pytest {{args}} --cov=wic --cov-branch --cov-report=term-missing --cov-report=html
diff --git a/pyproject.toml b/pyproject.toml
index e60c4fcc1595..2ad694b13358 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,6 +24,8 @@  Repository = "https://git.yoctoproject.org/wic"
 [project.optional-dependencies]
 tests = [
     "pytest >= 9.1.1",
+    "coverage >= 7.15.0",
+    "pytest-cov >= 7.1.0",
     "rust-just >= 1.55.1",
 ]