Scala Hedgehog
Scala Hedgehog is a free property-based testing system for Scala.
What Scala Hedgehog is
Scala Hedgehog is a free property-based testing system for Scala. It generates values for checking properties and can shrink failing cases while preserving the invariants of generated values. Range combinators let developers constrain generated numbers and collections. For stateful software, its abstract state machine testing can be used with systems such as web services and database layers. The project provides 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. The project describes its release as early and says its API may change before wider adoption. The IntelliJ Scala plugin does not list Hedgehog among its built-in test frameworks, though Properties tests can be run as applications. SBT 1.9.1 and later support the testing extension by default; older versions require a testFrameworks setting.
Good
- Shrinking simplifies failures while preserving value invariants.
- Supports abstract state machine testing.
- Integrates with SBT, Minitest, and MUnit.
- Core module has no external dependencies.
Watch out
- The project describes its release as early.
- The API may change before wider adoption.
- IntelliJ does not list it as a built-in test framework.
Who it suits
Scala Hedgehog is for Scala developers who want property-based tests, including tests for stateful systems. It may suit teams using SBT, Minitest, or MUnit.
Verdict
Scala Hedgehog offers property-based and stateful testing with integrated shrinking and several test-runner integrations. Its early release status and IntelliJ framework limitation are worth considering.
Plans and prices
From Scala Hedgehog's own pricing page, checked 4 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Scala Hedgehog | Free | Open-source Scala testing library · no paid plans listed |
The facts
Each one read from Scala Hedgehog's own pages, with the date it was checked.
What it does
- Automatic shrinking
- Integrated shrinking simplifies failing test cases while preserving the invariants of generated values.checked 4 Oct 2026
- Availability
- The project documents binary dependencies published through Maven Central, including core, runner, SBT, Minitest, and MUnit modules.checked 4 Oct 2026
- Build tools
- The getting-started documentation assumes SBT and says Hedgehog is also supported for Gradle through a Scala plugin.checked 4 Oct 2026
- Core dependencies
- The core module currently has no external dependencies.checked 4 Oct 2026
- Generator control
- Range combinators control the scope of generated numbers and collections.checked 4 Oct 2026
- IDE limitation
- The docs say the IntelliJ Scala plugin does not include Hedgehog among its hard-coded supported test frameworks; tests can be run as applications by extending Properties, with the test defined as an object.checked 4 Oct 2026
- Integrated shrinking
- Its integrated shrinkers compose with generators, so shrunk values preserve their invariants by construction.checked 4 Oct 2026
- IntelliJ limitation
- The docs say IntelliJ's Scala plugin does not list Hedgehog among its hard-coded supported test frameworks, and explain how to run Properties tests as an application instead.checked 4 Oct 2026
- Intended users
- The project is for Scala developers who want property-based tests, including tests of stateful systems.checked 4 Oct 2026
- Minitest integration
- Scala Hedgehog lists Minitest as an available integration module.checked 4 Oct 2026
- MUnit integration
- The hedgehog-munit module supports property-based and example-based Hedgehog tests in an MUnit test suite.checked 4 Oct 2026
- Purpose
- Scala Hedgehog is a property-based testing system for Scala, in the spirit of QuickCheck and ScalaCheck.checked 4 Oct 2026
- Range controls
- Range combinators control the scope of generated numbers and collections.checked 4 Oct 2026
- Release status
- The project describes itself as in an early release and says its API may break until wider adoption.checked 4 Oct 2026
- SBT runner
- Hedgehog provides an sbt testing extension; sbt 1.9.1 and higher support it by default, while versions 1.9.0 and lower require a testFrameworks setting.checked 4 Oct 2026
- Scala compatibility
- The documentation lists support for Scala 2.12, 2.13, and 3.3+.checked 4 Oct 2026
- Scala versions
- The documented supported Scala versions are 2.12, 2.13, and 3.3+.checked 4 Oct 2026
- Stateful testing
- It supports abstract state machine testing for stateful systems such as web services and database layers.checked 4 Oct 2026
- State testing
- It supports abstract state machine testing for stateful systems.checked 4 Oct 2026
- Test integrations
- Integration modules are available for Minitest and MUnit.checked 4 Oct 2026
- Test runner
- The project includes an SBT test runner and supports SBT's testing extension.checked 4 Oct 2026
Alternatives to Scala 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
