# DocTest

### From HaskellWiki

SimonHengel (Talk | contribs) (Update for 0.1.0) |
SimonHengel (Talk | contribs) (Minor fixes, add example for producing Haddock documentation) |
||

Line 34: | Line 34: | ||

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

− | With DocTest you may checks if the implementation satisfies the given examples, by typing (on your Unix shell): |
+ | (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.) |
||

+ | |||

+ | With DocTest you may check if the implementation satisfies the given examples, by typing (on your Unix shell): |
||

<pre> |
<pre> |
||

Line 40: | Line 40: | ||

</pre> |
</pre> |
||

− | Lines starting with <hask>>>></hask> denote ''expressions''. |
+ | You may produce Haddock documentation for that module with: |

− | 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] |
+ | <pre> |

− | (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when |
+ | $ haddock -h Fib.hs -o doc/ |

− | evaluating that expression. |
+ | </pre> |

==Hacking== |
==Hacking== |

## Revision as of 07:54, 16 October 2010

## Contents |

## 1 What is DocTest

DocTest is a small program, that checks examples in Haskell source code 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

Bellow 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)

*expression*.

All comment lines following an expression denote the
*result* of that expression. Result is defined by what an REPL

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!