gencheck alternatives and similar packages
Based on the "Testing" category.
Alternatively, view gencheck alternatives based on common mentions on social networks and blogs.
-
hedgehog
Release with confidence, state-of-the-art property testing for Haskell. -
quickcheck-state-machine
Test monadic programs using state machine based models -
smallcheck
Test your Haskell code by exhaustively checking its properties -
curl-runnings
A declarative test framework for quickly and easily writing integration tests against JSON API's. -
ghc-prof-flamegraph
Generates data to be used with flamegraph.pl from .prof files. -
monad-mock
A Haskell package that provides a monad transformer for mocking mtl-style typeclasses -
test-framework
Framework for running and organising QuickCheck test properties and HUnit test cases -
fuzzcheck
A library for testing monadic code in the spirit of QuickCheck -
tasty-hedgehog
Tasty integration for the Hedgehog property testing library -
should-not-typecheck
A HUnit/hspec assertion to verify that an expression does not typecheck -
hspec-expectations-json
Hspec expectations on JSON Values -
hspec-golden-aeson
Use tests to monitor changes in Aeson serialization -
quickcheck-arbitrary-adt
Typeclass for generating a list of each instance of a sum type's constructors -
test-framework-th
Automagically (using Template Haskell) generates the Haskell-code you need when using HUnit -
tasty-expected-failure
Mark test cases as expected-failure -
tasty-rerun
Rerun previous test suite runs to run only failing tests -
test-framework-sandbox
test-sandbox support for the test-framework package
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of gencheck or a related project?
README
GenCheck
Test.GenCheck is a Haskell library for generalized proposition-based testing. It simultaneously generalizes both QuickCheck and SmallCheck.
Its main novel features are:
- introduces a number of testing strategies and strategy combinators
- introduces a variety of test execution methods
- guarantees uniform sampling (at each rank) for the random strategy
- guarantees both uniqueness and coverage of all structures for the exhaustive strategy
- introduces an extreme strategy for testing unbalanced structures
- also introduces a uniform strategy which does uniform sampling along an enumeration
- allows different strategies to be mixed; for example one can exhaustively test all binary trees up to a certain size, filled with random integers.
- complete separation between properties, generators, testing strategies and test execution methods
The package is based on a lot of previous research in combinatorics (combinatorial enumeration of structures, as well as the theory of Species), as well as a number of established concepts in testing (from a software engineering perspective). In other words, further to the features already implemented in this first release, the package contains an extensible, general framework for generators, test case generation and management. It can also be very easily generalized to cover many more combinatorial structures unavailable as Haskell types.
The package also provides interfaces for different levels of usage. In other words, there is a 'simple' interface for dealing with straightforward testing, a 'medium' interface for those who want to explore different testing strategies, and an 'advanced' interface for access to the full power of GenCheck.
The file tutorial/reverse/TestReverseList.lhs shows the simplest kinds of tests (standard and deep for structures, or base for unstructured types) and reporting (checking, testing and full report) for the classical list reverse function. The files in tutorial/list_zipper show what can be done with the medium level interface (this tutorial is currently incomplete). The brave user can read the source code of the package for the advanced usage -- but we'll write a tutorial for this too, later.