Skip to content

Releases: Karzone/SpecHygiene

SpecHygiene v1.1.0

Choose a tag to compare

@Karzone Karzone released this 22 Jul 14:36

A more accurate, more focused release.

Fixed

  • Coverage false positives. Steps used only in @ignore / @wip scenarios are no longer reported as unused (the disabled test still needs them). On a real suite this cut false "unused step definitions" from 175 → 7.

Changed

  • Data errors are now rich, collapsible detail cards — each category folds independently so hundreds of issues stay scannable, and every card shows the specifics: missing <placeholders>, the affected step text, and the Examples columns. The issue line colour-codes what a scenario is (red) vs what it should be (green).

Removed

  • Duplicate-scenarios check. SpecHygiene now focuses on the three universally-applicable checks: unused code, unused step definitions, and data errors.

Update:

dotnet tool update -g SpecHygiene

Full notes: CHANGELOG.md

SpecHygiene v1.0.3

Choose a tag to compare

@Karzone Karzone released this 22 Jul 07:33

Better duplicate detection.

Changed — the duplicate check now targets whole scenarios, not step reuse. The previous default counted how often each step appeared across scenarios — but reusing a step is normal, intended BDD, not a duplicate. SpecHygiene now finds duplicate / near-duplicate scenarios (exact, containment, high-overlap) and reports each match's type, overlap %, and file:line. The misleading "duplicated steps" table has been removed.

Update:

dotnet tool update -g SpecHygiene

Full notes: CHANGELOG.md

SpecHygiene v1.0.2

Choose a tag to compare

@Karzone Karzone released this 22 Jul 06:54

Accuracy + usability release.

Fixed — WPF/XAML false positives in the unused-code check. Event handlers and other XAML-wired members (bindings, converters, control types, x:Name) are no longer reported as dead code — SpecHygiene now scans .xaml as a reference source. On a real WPF-backed solution this cut false positives from 69 → 10. Extraction is position-scoped (attribute values + markup extensions), so a genuinely-dead method that merely shares a name with a XAML attribute is still reported.

Added — locations in the duplicate-steps report. The Duplicated steps table now shows the file:line (and scenario) of every occurrence, so findings are directly actionable.

Update:

dotnet tool update -g SpecHygiene

Full notes: CHANGELOG.md

SpecHygiene v1.0.1

Choose a tag to compare

@Karzone Karzone released this 21 Jul 22:05

Maintenance release.

  • Roslyn upgraded to 4.14 (Microsoft.CodeAnalysis.CSharp) for full C# 14 / .NET 10 source parsing.
  • Confirms and documents that the tool runs on .NET 8, 9, and 10 — a net8.0 tool rolls forward — and analyses source targeting any of them.

Install / update:

dotnet tool update -g SpecHygiene

Full notes: CHANGELOG.md

SpecHygiene v1.0.0

Choose a tag to compare

@Karzone Karzone released this 21 Jul 21:21

Static hygiene checks for Reqnroll / SpecFlow BDD solutions — find unused C# code, unused step definitions, feature-file data errors, and duplicate scenarios. No AI, no network.

Install

dotnet tool install -g SpecHygiene
spechygiene ./MySolution

Or clone and run: dotnet run --project src/SpecHygiene -- ./MySolution

What it checks

  • Unused code — Roslyn semantic dead-code (methods, classes, interfaces).
  • Unused step definitions — bindings no scenario uses, matched with runtime-accurate Cucumber-expression / regex semantics.
  • Data errors — undefined placeholders, Scenario with Examples:, malformed tables, unresolved @DataSource.
  • Duplicate scenarios — exact, containment, and near-duplicate via deterministic step fingerprints.

Output

A self-contained HTML report (dashboard + collapsible sections, light/dark) and a text summary. See a live sample.

Built on .NET 8, cross-platform, 217 tests. Full notes in CHANGELOG.md.