Doctest: Test interactive Haskell examples
doctest is available from
Install it, by typing:
cabal install doctest
Make sure that Cabal's
bindir is on your
On Mac OS X:
On Windows it's
C:\Documents And Settings\user\Application Data\cabal\bin.
Fore more information, see the section on paths in the Cabal User Guide.
Below is a small Haskell module. The module contains a Haddock comment with some examples of interaction. The examples demonstrate how the module is supposed to be used.
module Fib where -- | Compute Fibonacci numbers -- -- Examples: -- -- >>> fib 10 -- 55 -- -- >>> fib 5 -- 5 fib :: Int -> Int fib 0 = 0 fib 1 = 1 fib n = fib (n - 1) + fib (n - 2)
(A comment line starting with
>>> denotes an expression.
All comment lines following an expression denote the result of that expression.
Result is defined by what an
REPL (e.g. ghci)
stderr when evaluating that expression.)
doctest you may check whether the implementation satisfies the given examples, by typing:
You may produce Haddock documentation for that module with:
haddock -h Fib.hs -o doc/
Using GHC extensions
The easiest way to tell Doctest about GHC extensions is to use LANGUAGE pragmas in your source files.
Alternatively you can pass any GHC options to Doctest with
doctest --options=-cpp Foo.hs
Hiding examples from Haddock
You can put examples into named chunks, and not refer to them in the export list. That way they will not be part of the generated Haddock documentation, but Doctest will still find them.
Join in at
#hspec on freenode.
Discuss your ideas first, ideally by opening an issue on GitHub.
Add tests for new features, and make sure that the test suite passes with your changes.
cabal configure --enable-tests && cabal build && cabal test
List of Contributors
See the list of contributors.