Skip to content

Releases: Karzone/SpecReport

v0.1.0-alpha - first public preview

Pre-release

Choose a tag to compare

@Karzone Karzone released this 28 Jul 20:23

First public preview of SpecReport.

What it does

Turns a Reqnroll run's Cucumber Messages into a single self-contained HTML report - no server,
no CDN, no network calls. Gherkin step timelines with screenshots on UI steps, full HTTP
request/response detail on API steps, and trend + flakiness views across many runs.

Works on any Reqnroll 3.0+ project with no package reference: enable the built-in message
formatter and point specreport at the file. SpecReport.Capture is optional and adds the
HTTP panels and screenshots.

Packages

Package
SpecReport.Cli The specreport dotnet tool
SpecReport.Core Parsing and rendering, if you want to embed it
SpecReport.Capture Optional Reqnroll plugin: HTTP exchanges and screenshots
dotnet tool install -g SpecReport.Cli --prerelease

Notable

  • HTTP evidence attributes correctly under parallel execution. The naive approaches were
    measured and rejected: [ThreadStatic] returned another scenario's buffer 6-20 times out of
    32, and an AsyncLocal seeded from an async hook was lost every time.
  • Redaction happens before anything reaches the .ndjson, because that file gets archived
    as a CI artifact. Headers, query parameters, and JSON body keys at any depth. What it does
    not cover is stated plainly in the README.
  • Degraded input is first-class. A run killed by a CI timeout still renders, with a banner
    saying what was lost - that is the run you most need a report for.
  • SpecReport.Capture depends on Reqnroll and nothing else, enforced by a build target. It
    will never pull a browser or HTTP framework into your test project.

Honest limitations

  • 5,000 scenarios generates in ~2.4s but yields a 13 MB file. Up to ~2,000 is comfortable.
  • Nested/called steps roll up into the outer step.
  • Renaming a scenario reads as removed+added in the multi-run matrix.
  • No worker/shard attribution - Reqnroll never populates workerId.

Quality

All 49 specification criteria are satisfied - 46 proven by an executable conformance suite that
fails the build when a rule has no test, and 3 signed off by a human. CI runs on Linux, Windows
and macOS.

Pre-release: the API may still move before 1.0.