How can I set up a simple test with Cabal?

cabal, haskell, testing

Solution

As Duncan mentioned in Greg's answer, Cabal-1.10 has support for test suites out of the box.

The manual seems to have the best information that's I've found regarding how to make use of this.

Here's a snippet from the manual which shows how to use the `exitcode-stdio` test type:

foo.cabal

Name:           foo
Version:        1.0
License:        BSD3
Cabal-Version:  >= 1.9.2
Build-Type:     Simple

Test-Suite test-foo
    type:       exitcode-stdio-1.0
    main-is:    test-foo.hs
    build-depends: base

test-foo.hs:

module Main where

import System.Exit (exitFailure)

main = do
    putStrLn "This test always fails!"
    exitFailure

Problem

I have a Haskell project and Cabal package-description that allows me to build and install my package with ``` $ cabal configure $ cabal build $ cabal install ``` But what about `cabal test`? Cabal's help says to configure a test suite with UserHooks, but how can I do that?

Original source