@hackage test-framework-th0.1.2

Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell.

test-framework-th contains two interesting functions: defaultMainGenerator and testGroupGenerator.

defaultMainGenerator will extract all functions beginning with case_ or prop_ in the module and put them in a testGroup.

module Foo where
main = $(defaultMainGenerator)

case_Two = 2 @=? 2
case_Hi = "hi" @=? "hi"
prop_Reverse xs = reverse (reverse xs) == xs
 where types = xs :: [Int]

is the same as

module Foo where
main = defaultMain [testGroup "Foo" [testProperty "Reverse" prop_Reverse, testCase "Two" case_Two, testCase "Hi" case_Hi]

case_Two = 2 @=? 2
case_Hi = "hi" @=? "hi"
prop_Reverse xs = reverse (reverse xs) == xs
 where types = xs :: [Int]

testGroupGenerator is like defaultMainGenerator but without defaultMain. It is useful if you need a function for the testgroup (e.g. if you want to be able to call the testgroup from another module).