| Safe Haskell | None |
|---|
Test.Framework.TH
Documentation
defaultMainGenerator :: ExpQSource
Generate the usual code and extract the usual functions needed in order to run HUnitQuickcheckQuickcheck2. All functions beginning with case_, prop_ or test_ will be extracted.
{-# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #-}
module MyModuleTest where
import Test.HUnit
import MainTestGenerator
main = $(defaultMainGenerator)
case_Foo = do 4 @=? 4
case_Bar = do "hej" @=? "hej"
prop_Reverse xs = reverse (reverse xs) == xs
where types = xs :: [Int]
test_Group =
[ testCase "1" case_Foo
, testProperty "2" prop_Reverse
]
will automagically extract prop_Reverse, case_Foo, case_Bar and test_Group and run them as well as present them as belonging to the testGroup MyModuleTest such as
me: runghc MyModuleTest.hs
MyModuleTest:
Reverse: [OK, passed 100 tests]
Foo: [OK]
Bar: [OK]
Group:
1: [OK]
2: [OK, passed 100 tests]
Properties Test Cases Total
Passed 2 3 5
Failed 0 0 0
Total 2 3 5
testGroupGenerator :: ExpQSource
Generate the usual code and extract the usual functions needed for a testGroup in HUnitQuickcheckQuickcheck2. All functions beginning with case_, prop_ or test_ will be extracted.
-- file SomeModule.hs fooTestGroup = $(testGroupGenerator) main = defaultMain [fooTestGroup] case_1 = do 1 @=? 1 case_2 = do 2 @=? 2 prop_p xs = reverse (reverse xs) == xs where types = xs :: [Int]
is the same as
-- file SoomeModule.hs fooTestGroup = testGroup "SomeModule" [testProperty "p" prop_1, testCase "1" case_1, testCase "2" case_2] main = defaultMain [fooTestGroup] case_1 = do 1 @=? 1 case_2 = do 2 @=? 2 prop_1 xs = reverse (reverse xs) == xs where types = xs :: [Int]