FSharp.Hedgehog
FSharp.Hedgehog is a free property-based testing system for .NET that generates inputs to help developers find edge cases.
What FSharp.Hedgehog is
FSharp.Hedgehog is a free property-based testing system for .NET that generates inputs to help developers find edge cases. It supports F#, C#, and other .NET languages, and works with any .NET test framework; xUnit V3 is also listed as a supported test runner. When a property fails, Hedgehog reduces the generated input to a smaller counterexample while keeping it within the generator’s invariants. Generators can be composed to describe structured and recursive data, and range combinators control the scope and growth of generated numeric and collection values. Explicit seed control makes runs deterministic, while shrink trees are available for debugging. The library offers F# computation expressions and supports LINQ syntax for generators and properties. It runs on Linux, macOS, and Windows and is licensed under Apache License 2.0. The project provides GitHub Issues and Discussions for support. It has a free plan and no free trial; its project pages do not specify a platform-specific installation method.
Good
- Works with any .NET test framework.
- Shrinking preserves generated-value invariants.
- Explicit seeds support deterministic runs.
- Supports Linux, macOS, and Windows.
- Free under Apache License 2.0.
Watch out
- No free trial is listed.
- Project pages do not state a platform-specific installation method.
Who it suits
Hedgehog suits .NET developers writing tests in F#, C#, or another .NET language who want generated inputs and smaller failure examples. It is relevant to teams using any .NET test framework, including xUnit V3.
Verdict
Hedgehog offers .NET developers input generation, invariant-preserving shrinking, and reproducible runs at no cost. Check the GitHub project for installation details and support options.
The facts
Each one read from FSharp.Hedgehog's own pages, with the date it was checked.
What it does
- Debugging
- The project lists shrink trees as available for debugging.checked 8 Oct 2026
- Deterministic runs
- The repository lists explicit seed control for deterministic test runs.checked 8 Oct 2026
- Example test count
- The documentation example reports a property passing 100 tests.checked 8 Oct 2026
- Failure shrinking
- When a property fails, Hedgehog simplifies the failing input to find a smaller counterexample.checked 8 Oct 2026
- Generators
- It includes generators for primitive values and composable operations for building generators for complex types.checked 8 Oct 2026
- Installation
- The opened project pages do not state a download or platform-specific installation method.checked 8 Oct 2026
- Integrated shrinking
- When a property fails, Hedgehog shrinks the failing input to a smaller counterexample while preserving the generated values’ invariants.checked 8 Oct 2026
- Intended users
- The project describes the library as property-based testing for .NET developers writing tests in F#, C#, or other .NET languages.checked 8 Oct 2026
- Invariant preserving
- Its integrated shrinking keeps shrunk values within the invariants of the generators.checked 8 Oct 2026
- Languages
- The repository says Hedgehog can be used from F#, C#, or other .NET languages.checked 8 Oct 2026
- License
- The repository license is Apache License 2.0.checked 8 Oct 2026
- Purpose
- Hedgehog is a property-based testing system for .NET that automatically generates inputs to help find edge cases.checked 8 Oct 2026
- Range control
- Range combinators control the scope and growth of generated numeric and collection values.checked 8 Oct 2026
- Reproducibility
- Runs can be made deterministic using explicit seed control.checked 8 Oct 2026
- Security
- The opened project pages provide no security or compliance claims.checked 8 Oct 2026
- Support
- The repository exposes GitHub Issues and Discussions for the project.checked 8 Oct 2026
- Supported languages
- The project says it can be used from F#, C#, and other .NET languages.checked 8 Oct 2026
- Syntax
- Hedgehog provides F# computation expressions and supports LINQ syntax for generators and properties.checked 8 Oct 2026
- Test framework compatibility
- Hedgehog works with any .NET test framework.checked 8 Oct 2026
- Test frameworks
- The repository says Hedgehog works with any .NET test framework.checked 8 Oct 2026
Alternatives to FSharp.Hedgehog
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
ScalaCheck
Free planLinuxmacOSWindows6.6Free plan - 3
Gopter
Free planLinuxSelf-hosted6.4Free plan - 4
JSVerify
Free planWebSelf-hosted6.4Free plan - 5
Racket QuickCheck
Free planLinuxmacOSWindows6.4Free plan - 6
FsCheck
Free planLinuxmacOSWindows6.3Free plan
