Personal tools

DocTest

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(fix typo)
(Add reference to Haddock documentation)
Line 1: Line 1:
 
==What is DocTest==
 
==What is DocTest==
DocTest is a small program, that checks examples in
+
DocTest is a small program, that checks
Haskell source code comments. It is modeled after
+
[http://www.haskell.org/haddock/doc/html/ch03s08.html#id566093 examples in Haddock comments]. It is modeled after
 
[http://docs.python.org/library/doctest.html doctest for Python].
 
[http://docs.python.org/library/doctest.html doctest for Python].
   

Revision as of 08:02, 16 October 2010

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 (on your Unix shell):

$ cabal install doctest

3 Usage

Below is a small Haskell module. The module contains source code comments. Those comments are examples from an interactive Haskell session and demonstrate how the module is 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 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 if the implementation satisfies the given examples, by typing (on your Unix shell):

$ 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!