Shouldly Migration Check for FluentAssertions
Finds every FluentAssertions line in a .csproj or C# test file and writes the Shouldly line that replaces it. FluentAssertions 8+ references are flagged: commercial use needs a paid Xceed licence. Measured: shouldly migration: 6 findings in one xUnit test file for a .NET order service (19 rules). Left: FluentAssertions line · right: Shouldly line. using FluentAssertions; → using Shouldly; · total.Should().Be(119.00m); → total.ShouldBe(119.00m); · Lines.Should().HaveCount(3); → Lines.Count().ShouldBe(3); · Customer.Should().NotBeNull(); → Customer.ShouldNotBeNull(); · act.Should().Throw() → Should.Throw(act) · Should().BeEquivalentTo(expected) → ShouldBeEquivalentTo(expected). The same file rewritten with Shouldly returns 0 findings. FluentAssertions 8.0.0 (NuGet 2025-01-14) changed the licence 636 days before 2026-10-12. Hub page and free web version: https://getreadystack.com/tools/shouldly-migration-check Yardstick: Xceed lists a Fluent Assertions licence from 14.95 USD a year without support; a move to Shouldly costs one rewritten line per assertion. Why this existsFluentAssertions 8.0.0 was published on NuGet on 2025-01-14. Its package description says the version is free for open-source projects and non-commercial use, and commercial use requires a paid licence from Xceed. Every 7.x release is Apache-2.0; 7.2.2 (2026-03-16) is the latest one. The newest 8.x is 8.11.0 (2026-09-14).
Two exits
The 19 rulesSix project-file rules: FluentAssertions 8+ packages (error), floating versions that can resolve to 8.x, 7.x versions with the pin Thirteen C# rules: BeEquivalentTo and ShouldBeEquivalentTo can compare objects by different rules, so that finding tells you to run the test after the swap. Files it reads
Free and full versionFree, no key: check the open file and see every FluentAssertions line with its Shouldly line, in VS Code or on the web page. Full version (licence key): scan every project and test file in the workspace at once and export one dated Markdown migration plan, each FluentAssertions line mapped to its Shouldly line, for the licence review ticket. Sources: NuGet package metadata for FluentAssertions 7.2.2 and 8.11.0, Shouldly 4.3.0 and AwesomeAssertions 9.6.0; https://xceed.com/fluent-assertions-faq/ |
