Skip to content
SPECIFICTION
Get listed

QCheck vs scalaprops

QCheck

github.com

scalaprops

github.com

Side by side

FigureQCheckscalaprops
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
LinuxYesYes
Plans published11
Spec score · Property-Based Testing Tools7.9 (#9)7.0 (#22)
LicenseThe repository identifies its license as BSD-2-Clause and says the code is released under the BSD license.The repository is licensed under MIT, whose text provides the software without warranty.
PurposeQCheck is a QuickCheck-inspired property-based testing library for OCaml.Scalaprops is a property-based testing library for Scala.

Plans

QCheck

  • QCheckFree

QCheck pricing →

scalaprops

  • ScalapropsFree

scalaprops pricing →

In their own words

QCheck

QCheck is a property-based testing library for OCaml, inspired by QuickCheck. Rather than relying only on hand-picked examples, it provides combinators to generate values such as lists, arrays, tuples, recursive types, and algebraic types for checking properties. When a check fails, generators can be paired with printers and shrinkers to show and reduce counterexamples. QCheck2 builds shrinking into its generators, though the project describes that API as less battle-tested than QCheck. The package family includes qcheck-core, qcheck-ounit, qcheck-alcotest, qcheck, and ppx_deriving_qcheck; the last can derive generators from type declarations. Runner options include QCheck_base_runner in qcheck-core and QCheck_runner with OUnit compatibility in qcheck, with integration layers for OUnit and Alcotest. The project also points to qcheck-stm for sequential and parallel model-based tests and qcheck-lin for sequential consistency testing. Installation is available through opam, and the source can be built with make. The minimal qcheck-core package depends only on unix and dune. QCheck is free and licensed under BSD-2-Clause.

Visit github.com

scalaprops

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.

Visit github.com