scalaprops
github.com
What it is
Scalaprops is a free Scala property-based testing library for Linux. It generates test data, including non-constant scala.FunctionN values through Cogen, and lets each test define flexible parameters. Law checking is configurable, with identifiers that may use types other than String. Scalaz integration supplies laws plus Gen and Cogen instances for Scalaz types. Randomness uses an immutable generator rather than mutable scala.util.Random. Failed tests report their starting seed, which can be passed again with --seed= for repeatable runs. The README states support for Scala.js and Scala Native, using Mersenne Twister by default on JVM and Scala Native and Tiny Mersenne Twister on Scala.js. An sbt plugin adds scalapropsOnly selection by test class, method, and parameter. ScalapropsFramework and sbt are listed test runners. Parallel test execution is unsupported.
Spec sheet
- Purpose
- Scalaprops is a property-based testing library for Scala.Read 9 Oct 2026 · github.com
- License
- The repository is licensed under MIT, whose text provides the software without warranty.Read 9 Oct 2026 · github.com
- Deterministic testing
- When a test fails, it emits its starting seed and supports rerunning with --seed=<value>.Read 9 Oct 2026 · github.com
- Function generators
- It provides generators for scala.FunctionN using Cogen, including non-constant functions.Read 9 Oct 2026 · github.com
- Law checking
- It supports flexible law checking and can use test identifiers other than String.Read 9 Oct 2026 · github.com
- Parallel execution limit
- The README setup example says parallel test execution is currently unsupported.Read 9 Oct 2026 · github.com
- Randomness
- It uses an immutable random number generator and does not use mutable scala.util.Random.Read 9 Oct 2026 · github.com
- sbt plugin
- The project recommends its sbt plugin, which provides a scalapropsOnly command with test class, method, and parameter selection.Read 9 Oct 2026 · github.com
- Scalaz integration
- It integrates with Scalaz and provides laws and Gen and Cogen instances for Scalaz types.Read 9 Oct 2026 · github.com
- Supported runtimes
- The README states support for Scala.js and Scala Native; its default random generator is Mersenne Twister for JVM and Scala Native and Tiny Mersenne Twister for Scala.js.Read 9 Oct 2026 · github.com
- Test settings
- It supports flexible parameter settings for each test.Read 9 Oct 2026 · github.com
- Timeouts
- The project lists timeout as soon as possible as a feature.Read 9 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Generates non-constant scala.FunctionN values
- Configurable parameters and law checking
- Repeat failures with reported starting seeds
- Scalaz laws, Gen, and Cogen integration
- Free under the MIT license
Limits
- Parallel test execution is unsupported
- Linux is the listed platform
- No free trial is offered
Who it suits
Scalaprops suits Scala developers writing property-based tests, law checks, or Scalaz-integrated tests. It is intended for Linux and also states support for Scala.js and Scala Native runtimes.
Verdict
Scalaprops focuses on configurable, repeatable property-based testing for Scala. Its immutable randomness, seed replay, runtime support, and sbt integration are useful, while parallel execution remains unavailable.
Where Specifiction places it
- Property-Based Testing Tools#22 of 287.0