Skip to content

v0.55.0

Choose a tag to compare

@PhenX PhenX released this 17 Oct 14:42
88f3703

This release combines unit and end-to-end coverage into one ratio per commit: upload unit-test reports with piwi coverage upload, explore a commit's coverage as a tree split by suite, follow the trend, export it as LCOV or Cobertura, and gate pull requests on patch coverage.

Full diff: v0.54.0…v0.55.0

✨ Highlights

  • 🧩 Combined coverage — Every suite's coverage of a commit, unit and end-to-end, counts toward one ratio, shown on the project's coverage, run and file pages, with a note on what the numbers leave out.
  • 📤 piwi coverage upload — The reporter uploads unit-test coverage reports, reads Cobertura and LCOV, and sends a .NET test host's run-level report as --format piwi.
  • 🌳 Coverage tree & gaps — Explore a commit's coverage as a foldable tree with every bar split by suite kind, rank the least-covered files, and step through a file's gaps.
  • 📊 Trend & export — Combined coverage is charted over time and exported as LCOV or Cobertura; named areas of the code are counted apart in coverage, the trend and pull requests.
  • 🚦 Patch coverage in pull requests — The pull-request comment and gate count patch coverage and unit suites.
  • 🌐 Coverage across origins — The reporter follows suites across origins, pages and documents, records the lines of each browser function that ran, and uploads the route manifest of every instrumented origin a run reaches.

Features

Combined coverage

  • app: combine every suite's coverage of a commit, unit and end-to-end, into one ratio per commit (080f1fd, 24ed380)
  • app: store uploaded coverage reports by commit and suite, executable lines by file version (951cc1c)
  • db: keep a branch's newest coverage report per suite, earlier totals frozen (5f8fc80)
  • app: show a project's combined coverage on its coverage, run and file pages (a6889c1)
  • app: say what a commit's coverage numbers leave out (739dde6)

Exploring coverage

  • app: explore a commit's coverage as a foldable tree, every bar split by suite kind (dd292ad)
  • app: rank the least-covered files, mark a file's lines by suite and step through its gaps (bf256b3)
  • app: chart combined coverage over time and export it as LCOV or Cobertura (b12d214)
  • app: count named areas of the code apart in coverage, the trend and pull requests (b8824ad)
  • app: count patch coverage and unit suites in the pull-request comment and gate (cbe11ca)

Uploading coverage

  • reporter: add piwi coverage upload for unit-test coverage reports (6933dbd)
  • reporter: read Cobertura and LCOV reports, and keep the browser functions that did not run (cde1ca3)
  • reporter: upload a .NET test host's run-level report, written at exit, as --format piwi (a70fa64)
  • reporter: say when an uploaded commit's coverage was superseded (92472a7)

Browser coverage & code reach

  • reporter: follow suites across origins, pages and documents for coverage and route manifests (984b840)
  • reporter: record the lines of each function that ran in the browser (5926401)
  • reporter: record code reach on every page a test has and every document it leaves (c9a39ee)
  • reporter: resolve code reach against the roots of each origin (6748d4b)
  • reporter: upload the route manifest of every instrumented origin a run reaches (88a4a17)

Editors

  • ide: one pair of coverage mark colors in the dashboard and the editors, with what they mean (c62c29a)
  • ide: record the browser's coverage by function from a browser file's lens (04bd0a5)

Demo

  • demo: wire the sample app for combined coverage (84b116c)
  • demo: show a branch push superseded by the next one (25a70ea)

Performance Improvements

  • reporter: keep code reach's script cache small enough to hold a large app's modules (3cf95c9)
  • reporter: keep each decoded source map in four typed arrays, not three per line (c91d5bc)

Bug Fixes

Coverage in the dashboard

  • app: carry coverage only from earlier commits, recount every stale commit (36186b9)
  • app: merge coverage uploads safely, keep a default-branch commit, bound report bodies (e4febf1)
  • db: store when a commit's coverage arrived, count report inventories once (53c3689)
  • app: ask the run coverage of server files only, and say browser files unfold (947e926)
  • app: give the coverage trend's change the subtitle, clear of a long legend (74f2c84)
  • app: keep the coverage overview in place, its links on the pinned commit and area (71e5cae)
  • ide: mark a file with its own coverage, not another file's ending with the same path (5c545ff)
  • demo: run the unit coverage without a shell, upload only this run's reports (29c7e23)

Coverage capture & upload

  • reporter: bound the end-of-run wait for browser blob ids too (b466e25)
  • reporter: count every instrumented assembly's lines, drop lines built from other sources (fd086cb)
  • reporter: fetch an origin's manifest as it is first seen, through the backend request helper (864d341)
  • reporter: place a function that ran on its own lines through a production bundle's map (ab8c415)
  • reporter: read each document's coverage against the scripts it parsed, and keep only what ran (bc9f6fb)
  • reporter: read quoted Cobertura values in one pass, match scope patterns without backtracking (f3127ca)
  • reporter: send every browser function in parts, keep idle ones only at functions (102f2ca)
  • reporter: wait at the end of a test for the code reach a closing page started stopping (32f421d)
  • reporter: write a .NET host's coverage report in time, one file per host (fa84f0c)

Integrations