Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
An implementation of Python's doctest for Haskell
Haskell Other

This branch is 5 commits ahead, 253 commits behind sol:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bash_completion.d
src
test
.ghci
.gitignore
.travis.yml
CHANGES
KNOWN_ISSUES
LICENSE
README.markdown
Setup.lhs
doctest.cabal

README.markdown

About

doctest is a small program, that checks examples in Haddock comments. It is modeled after doctest for Python.

Installation

doctest is available from Hackage. Install it, by typing:

cabal install doctest

Make sure that Cabal's bindir is on your PATH.

On Linux:

export PATH="$HOME/.cabal/bin:$PATH"

On Mac OS X:

export PATH="$HOME/Library/Haskell/bin:$PATH"

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.

Usage

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) prints to stdout and stderr when evaluating that expression.)

With doctest you may check whether the implementation satisfies the given examples, by typing:

doctest Fib.hs

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 a LANGUAGE pragmas in your source files.

Alternatively you can pass any GHC options to Doctest with --optghc.

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.

Hacking

Submit pull request on GitHub. Add tests for new features. Make sure that the test suite passes with your changes, before submitting any pull requests:

cabal clean && cabal install && ./tests/runtests.sh

Contributors

See the list of contributors.

Something went wrong with that request. Please try again.