Freedom251 › Property-Based Testing Tools
FSharp.Hedgehog

What FSharp.Hedgehog is
FSharp.Hedgehog is a free property-based testing library for .NET. It generates inputs for properties, helping developers explore cases that may not appear in a hand-picked set of examples. It can be used from F#, C#, and other .NET languages, and is compatible with any .NET test framework; xUnit V3 is also listed as supported.
When a property fails, Hedgehog reduces the generated input to a smaller counterexample while keeping it within the generator’s invariants. Generators can be combined to describe structured or recursive data, while range combinators control the size and growth of generated numbers and collections. Explicit seeds let developers make runs deterministic, and shrink trees are available for debugging. A documentation example shows a property passing 100 tests.
The library provides F# computation expressions and supports LINQ syntax for generators and properties. It runs on Linux, macOS, and Windows. The project is available through GitHub under the Apache License 2.0, with Issues and Discussions for support. Its listed pricing is free, with a free plan and no trial.
Who it suits
FSharp.Hedgehog suits .NET developers writing property-based tests in F#, C#, or another .NET language. It is especially relevant when tests need generated structured data, smaller failure examples, or reproducible runs.
What it does well
- Works with any .NET test framework, including xUnit V3.
- Shrinks failures while preserving generator invariants.
- Composes generators for structured and recursive data.
- Controls generated ranges for numbers and collections.
- Explicit seeds support deterministic runs.
- Available on Linux, macOS, and Windows.
What to know first
- No free trial is offered.
- The project pages do not give a platform-specific installation method.
Getting started
- Visit the project on GitHub.
- Choose F#, C#, or another .NET language for your tests.
- Use Hedgehog with a .NET test framework; xUnit V3 is listed as supported.
- Consult the repository's Issues or Discussions for project support.
Verdict
Choose FSharp.Hedgehog if you want a free .NET property-testing library with integrated shrinking and reproducible runs. Developers who need a stated installation route will need to consult the project pages for guidance.
Questions
How much does FSharp.Hedgehog cost?
It is free, with a free plan.
Is there a free trial?
No.
Which languages can use it?
F#, C#, and other .NET languages.
Which test frameworks does it support?
It works with any .NET test framework; xUnit V3 is also listed.
Is FSharp.Hedgehog open source?
The repository is licensed under Apache License 2.0.
Which platforms does it support?
Linux, macOS, and Windows.
Facts from FSharp.Hedgehog's own pages
- Debugging
- The project lists shrink trees as available for debugging. · github.com, 8 Oct 2026
- Deterministic runs
- The repository lists explicit seed control for deterministic test runs. · github.com, 8 Oct 2026
- Example test count
- The documentation example reports a property passing 100 tests. · hedgehogqa.github.io, 8 Oct 2026
- Failure shrinking
- When a property fails, Hedgehog simplifies the failing input to find a smaller counterexample. · hedgehogqa.github.io, 8 Oct 2026
- Generators
- It includes generators for primitive values and composable operations for building generators for complex types. · hedgehogqa.github.io, 8 Oct 2026
- Installation
- The opened project pages do not state a download or platform-specific installation method. · github.com, 8 Oct 2026
- Integrated shrinking
- When a property fails, Hedgehog shrinks the failing input to a smaller counterexample while preserving the generated values’ invariants. · hedgehogqa.github.io, 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. · github.com, 8 Oct 2026
- Invariant preserving
- Its integrated shrinking keeps shrunk values within the invariants of the generators. · hedgehogqa.github.io, 8 Oct 2026
- Languages
- The repository says Hedgehog can be used from F#, C#, or other .NET languages. · github.com, 8 Oct 2026
- License
- The repository license is Apache License 2.0. · github.com, 8 Oct 2026
- Purpose
- Hedgehog is a property-based testing system for .NET that automatically generates inputs to help find edge cases. · hedgehogqa.github.io, 8 Oct 2026
- Range control
- Range combinators control the scope and growth of generated numeric and collection values. · hedgehogqa.github.io, 8 Oct 2026
- Reproducibility
- Runs can be made deterministic using explicit seed control. · github.com, 8 Oct 2026
- Security
- The opened project pages provide no security or compliance claims. · github.com, 8 Oct 2026
- Support
- The repository exposes GitHub Issues and Discussions for the project. · github.com, 8 Oct 2026
- Supported languages
- The project says it can be used from F#, C#, and other .NET languages. · github.com, 8 Oct 2026
- Syntax
- Hedgehog provides F# computation expressions and supports LINQ syntax for generators and properties. · hedgehogqa.github.io, 8 Oct 2026
- Test framework compatibility
- Hedgehog works with any .NET test framework. · github.com, 8 Oct 2026
- Test frameworks
- The repository says Hedgehog works with any .NET test framework. · github.com, 8 Oct 2026
Where FSharp.Hedgehog stands on Freedom251
- Property-Based Testing Tools#6 of 28