Zeilenabdeckung — die maßgebliche Messung
Die „~95 % Zeilenabdeckung“ auf dem README-Badge, in der CI-Tabelle (kontinuierliche Integration) der README, auf den Startseiten von crates.io und PyPI (Python Package Index), auf der Seite zur Zeilenabdeckung von kshana.dev und im technischen Bericht ist diese Messung, auf die nächste ganze Prozentzahl gerundet. tests/coverage_figure_doc_sync.rs schlägt fehl, wenn eine dieser sechs Stellen eine andere Zahl nennt als die unten festgehaltene, sodass die nächste Neumessung alle zusammen verschiebt oder keine.
| Gemessen | 95.35 % — 55.970 von 58.697 Zeilen |
| Commit | db796dd (Engine 0.29.0, das Tag v0.29.0) |
| Ausführen | GitHub Actions, Job coverage aus ci.yml, Lauf 36809850252, 2026-10-01 |
| Werkzeug | cargo tarpaulin --engine llvm (quellbasierte LLVM-Instrumentierung) |
| Geltungsbereich | src/, ohne die erzeugten Datentabellen src/*_data.rs und den schmalen Einstiegspunkt der Befehlszeilenschnittstelle (CLI) src/main.rs; tests/ und web/ werden nicht gemessen |
| Artefakt | coverage-lcov (lcov.info, 290 Quelldateien), an diesen Lauf angehängt |
| Untergrenze | derselbe Job schlägt unter 85 % fehl (--fail-under 85) — die Untergrenze wird bei jedem Push durchgesetzt; die obige Zahl ist ein Nachweis, keine Schranke |
Der Befehl, wörtlich aus .github/workflows/ci.yml:
cargo tarpaulin --engine llvm --out Lcov --output-dir coverage \
--exclude-files 'src/*_data.rs' --exclude-files 'src/main.rs' \
--exclude-files 'tests/*' --exclude-files 'web/*' \
--timeout 3600 --fail-under 85
Re-measuring#
Jeder Push auf main führt den Job erneut aus und hängt eine frische lcov.info an. Um die veröffentlichte Zahl zu verschieben, laden Sie das Artefakt eines grünen Laufs herunter und summieren es:
gh run download <run-id> -n coverage-lcov -D /tmp/cov
awk -F: '/^LF:/{f+=$2} /^LH:/{h+=$2} END{printf "%.2f%% (%d/%d)\n", 100*h/f, h, f}' /tmp/cov/lcov.info
dann aktualisieren Sie die obige Tabelle und die sechs Stellen im selben Commit; der Doc-Sync-Test nennt jede, die Sie übersehen.
Verlauf#
Die Zahl wurde neu gemessen, nicht neu getippt: 95,63 % bei Commit b1d350d (Engine 0.27.2 + unveröffentlicht, Lauf 35934579709, 2026-09-24, 37.697 von 39.419 Zeilen, veröffentlicht als ~96 %), korrigiert auf 95,35 % bei 0.29.0 (oben), was auf ~95 % gerundet wird: Der Code ist um 19.278 gemessene Zeilen gewachsen, und die neuen Zeilen sind etwas weniger abgedeckt als die alten; 95,85 % bei v0.17.0 (Commit 1daa012, 2026-06-14, veröffentlicht als ~96 %) und ~97 % in zwei früheren Release-Notes (CHANGELOG.md, als Verlauf belassen). paper/kshana-technical-report.md sagte „nahe 97 %“, bis es auf diesen Nachweis gebracht wurde; es ist jetzt die sechste Stelle, die der Test festlegt.