The test-framework-th package
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.
-- file SomeModule.hs
( -# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #- )
module SomeModule where
import Test.Framework.TH
import Test.Framework
import Test.HUnit
import Test.Framework.Providers.HUnit
import Test.Framework.Providers.QuickCheck2
-- observe this line!
main = $(defaultMainGenerator)
case_1 = do 1 @=? 1
case_2 = do 2 @=? 2
prop_reverse xs = reverse (reverse xs) == xs
where types = xs::[Int]
is the same as
-- file SomeModule.hs
( -# OPTIONS_GHC -fglasgow-exts -XTemplateHaskell #- )
module SomeModule where
import Test.Framework.TH
import Test.Framework
import Test.HUnit
import Test.Framework.Providers.HUnit
import Test.Framework.Providers.QuickCheck2
-- observe this line!
main =
defaultMain [
testGroup "SomeModule" [ testCase "1" case_1, testCase "2" case_2, testProperty "reverse" prop_reverse]
]
case_1 = do 1 @=? 1
case_2 = do 2 @=? 2
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).
Properties
| Versions | 0.1.2, 0.1.3, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.2.4 |
|---|---|
| Dependencies | base (4.*), haskell-src-exts, haskell98, language-haskell-extract, regex-posix, template-haskell, test-framework |
| License | BSD3 |
| Author | Oscar Finnsson & Emil Nordling |
| Maintainer | Oscar Finnsson |
| Category | Testing |
| Home page | http://github.com/finnsson/test-generator |
| Upload date | Sat Aug 28 09:56:42 UTC 2010 |
| Uploaded by | OscarFinnsson |
| Built on | ghc-6.12, ghc-7.0 |
| Distributions | NixOS: 0.2.4, Debian: 0.2.2 |
Modules
- Test
- Framework
Downloads
- test-framework-th-0.1.3.tar.gz (Cabal source package)
- package description (included in the package)