happytails.ai

Coverage regression checker

Compare coverage from before and after a change and see the total change, the coverage of the changed lines and which files dropped. Each threshold gets a clear pass or fail.

Up to 2,000,000 characters for each coverage report and 1,000,000 characters for the diff. Processing runs locally in a background worker in your browser. Downloads: a JSON report, a CSV of files and a Markdown table. Paste the coverage file produced after your change, for example lcov.info or cobertura.xml. Up to 2,000,000 characters. Review the settings before running.

Your result

How to use Coverage regression checker
  1. Paste the head coverage report from after the change.
  2. Paste the base report and, if you have it, the unified diff of the change.
  3. Set the minimum patch coverage and the largest allowed drop.
  4. Run the check and review the verdicts and per-file deltas.
  5. Download the JSON report, CSV or Markdown summary.

Report a problem or share an idea.

Useful next steps

What it compares

Both reports are read into executable lines and hit counts. LCOV, Cobertura, JaCoCo, Istanbul coverage-final and json-summary, and Go coverprofile files are supported and detected automatically. Line coverage is the share of executable lines with at least one hit.

Patch coverage

With a unified diff, the added lines of each file in the new version are checked against the head report. Lines that are not executable, such as comments, are left out. Paths are matched exactly after removing a/ and b/ prefixes and any prefixes you list, then by a unique path suffix.

Thresholds

The total drop check compares head and base line coverage in percentage points. Patch coverage passes when it is at least the minimum. A per-file drop check is available and is off at 100. Istanbul json-summary has no line detail, so it supports totals only.