Releases: Karzone/SpecHygiene
Release list
SpecHygiene v1.1.0
A more accurate, more focused release.
Fixed
- Coverage false positives. Steps used only in
@ignore/@wipscenarios 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 SpecHygieneFull notes: CHANGELOG.md
SpecHygiene v1.0.3
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 SpecHygieneFull notes: CHANGELOG.md
SpecHygiene v1.0.2
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 SpecHygieneFull notes: CHANGELOG.md
SpecHygiene v1.0.1
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.0tool rolls forward — and analyses source targeting any of them.
Install / update:
dotnet tool update -g SpecHygieneFull notes: CHANGELOG.md
SpecHygiene v1.0.0
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 ./MySolutionOr 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,
ScenariowithExamples:, 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.