# DocTest

### From HaskellWiki

(Difference between revisions)

SimonHengel (Talk | contribs) m |
SimonHengel (Talk | contribs) (fix formatting issue) |
||

Line 33: | Line 33: | ||

</haskell> |
</haskell> |
||

− | (A line starting with <hask>>>></hask> denotes an ''expression''. |
+ | (A line starting with <hask>>>></hask> denotes an ''expression''. All comment lines following an expression denote the ''result'' of that expression. Result is defined by what an [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL] (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when evaluating that expression.) |

− | All comment lines following an expression denote the |
||

− | ''result'' of that expression. Result is defined by what an [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL] |
||

− | (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when |
||

− | evaluating that expression.) |
||

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

## Revision as of 15:55, 25 January 2011

## Contents |

## 1 What is DocTest

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

## 2 Installation

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

$ cabal install doctest

## 3 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)

>>>

*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

stderr

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/

## 4 Hacking

DocTest is still experimental. You can find a reference to the public source repository at Hackage.

Patches are gladly welcome!