DocTest
From HaskellWiki
(Difference between revisions)
m |
(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)
>>>
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!
