easytest: Simple, expressive testing library
EasyTest is a simple testing toolkit for unit- and property-testing. It's based on the hedgehog property-testing system. Here's an example usage:
module Main where
import EasyTest
import qualified Hedgehog.Gen as Gen
import qualified Hedgehog.Range as Range
suite :: Test
suite = tests
[ scope "addition.ex1" $ unitTest $ 1 + 1 === 2
, scope "addition.ex2" $ unitTest $ 2 + 3 === 5
, scope "list.reversal" $ property $ do
ns <- forAll $
Gen.list (Range.singleton 10) (Gen.int Range.constantBounded)
reverse (reverse ns) === ns
-- equivalent to `scope "addition.ex3"`
, scope "addition" . scope "ex3" $ unitTest $ 3 + 3 === 6
, scope "always passes" $ unitTest success -- record a success result
, scope "failing test" $ crash "oh noes!!"
]
-- NB: `run suite` would run all tests, but we only run
-- tests whose scopes are prefixed by "addition"
main :: IO Summary
main = runOnly "addition" suiteThis generates the output:
━━━ runOnly "addition" ━━━ ✓ addition.ex1 passed 1 test. ✓ addition.ex2 passed 1 test. ⚐ list.reversal gave up after 1 discard, passed 0 tests. ✓ addition.ex3 passed 1 test. ⚐ always passes gave up after 1 discard, passed 0 tests. ⚐ failing test gave up after 1 discard, passed 0 tests. ⚐ 3 gave up, 3 succeeded.
We write tests with ordinary Haskell code, with control flow explicit and under programmer control.
Downloads
- easytest-0.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1, 0.1.1, 0.2, 0.2.1, 0.3 |
|---|---|
| Change log | CHANGES.md |
| Dependencies | base (>=4.5 && <=5), call-stack (>=0.1), hedgehog (>=0.6 && <=0.6.1), mtl, profunctors, semigroups (>=0.18 && <0.19), split (>=0.2.3), stm, tagged, transformers [details] |
| Tested with | ghc ==7.10.3, ghc ==8.0.2, ghc ==8.2.2, ghc ==8.4.3, ghc ==8.4.4, ghc ==8.6.3 |
| License | MIT |
| Copyright | Copyright (C) 2017-2019 Joel Burget, Copyright (C) 2016 Paul Chiusano and contributors |
| Author | Joel Burget, Paul Chiusano |
| Maintainer | Joel Burget <joelburget@gmail.com> |
| Category | Testing |
| Home page | https://github.com/joelburget/easytest |
| Bug tracker | https://github.com/joelburget/easytest/issues |
| Source repo | head: git clone git@github.com:joelburget/easytest.git |
| Uploaded | by joelb at 2019-03-06T19:47:10Z |
| Distributions | Debian:0.2.1 |
| Reverse Dependencies | 2 direct, 7 indirect [details] |
| Downloads | 3994 total (15 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2019-03-06 [all 1 reports] |