Skip to content
SPECIFICTION
Get listed

FsCheck vs Scala Hedgehog

FsCheck

fscheck.github.io

Scala Hedgehog

hedgehogqa.github.io

Side by side

FigureFsCheckScala Hedgehog
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
WindowsYes—
macOSYes—
LinuxYesYes
Plans published11
Spec score · Property-Based Testing Tools8.4 (#3)7.7 (#11)
PurposeFsCheck automatically tests .NET programs by checking properties against randomly generated cases.Scala Hedgehog is a property-based testing system for Scala, in the spirit of QuickCheck and ScalaCheck.
Stateful testingModel-based testing for stateful systems and objects is in the Experimental namespace, where semantic-versioning promises do not apply.It supports abstract state machine testing for stateful systems such as web services and database layers.
Test runnerFsCheck includes a built-in runner usable from F# or C# Interactive, command-line programs, or a test framework.The project includes an SBT test runner and supports SBT's testing extension.

Plans

FsCheck

  • FsCheckFree

FsCheck pricing →

Scala Hedgehog

  • Scala HedgehogFree

Scala Hedgehog pricing →

In their own words

FsCheck

FsCheck checks properties of.NET programs against randomly generated cases. Developers can express properties in F#, C# or VB, then run them with the built-in runner from an interactive session, a command-line program or a test framework. Integrations are documented for xUnit.net and NUnit, with user-created integrations for Expecto, Fuchu, AutoFixture and MSTest. When a property fails, FsCheck shrinks the input and shows a minimal counterexample. Developers can also define custom generators and shrinkers and group them in Arbitrary instances. The library supports parameterized cases and parallel execution, and its packages and NUnit and xUnit.NET plugins are available from NuGet. FsCheck is free: its listed plan is free, with a BSD license permitting commercial and non-commercial modification and redistribution. It runs on Linux, macOS and Windows. The project maintains version 3.x, but its documentation covers 2.x and is described as out of date and incomplete. Its model-based testing API is experimental and exempt from semantic-versioning guarantees.

Visit fscheck.github.io

Scala Hedgehog

Scala Hedgehog is a property-based testing system for Scala that generates values to check properties and can simplify failing cases while preserving the generated values’ invariants. Range combinators let developers set the scope of generated numbers and collections. For stateful software, its abstract state machine testing can model systems such as web services and database layers. The project includes an SBT test runner and integration modules for Minitest and MUnit; its documentation also describes Gradle support through a Scala plugin. Documented Scala versions are 2.12, 2.13 and 3.3 or later. Binary dependencies for its modules are published through Maven Central, and the core module has no external dependencies. Scala Hedgehog is free, with no paid plans listed. The project describes its release as early and says its API may change before wider adoption. IntelliJ’s Scala plugin does not list Hedgehog among its built-in test frameworks, though Properties tests can be run as applications. The getting-started documentation assumes SBT; SBT 1.9.1 and later support the testing extension by default, while earlier versions require a testFrameworks setting.

Visit hedgehogqa.github.io