54 lines
1.8 KiB
XML
54 lines
1.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
|
<pkgmetadata>
|
|
<herd>haskell</herd>
|
|
<longdescription>
|
|
@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
|
|
> ( -# LANGUAGE TemplateHaskell #- )
|
|
> 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
|
|
> ( -# LANGUAGE TemplateHaskell #- )
|
|
> 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).
|
|
</longdescription>
|
|
<upstream>
|
|
<remote-id type="github">finnsson/test-generator</remote-id>
|
|
</upstream>
|
|
</pkgmetadata>
|