Generate labelled test/benchmark trees from sets of parameters.
Easily generate a labelled tree of tests/benchmarks from a generation function and sets of parameters to use for each of that functions arguments. Example usecases include criterion benchmark trees or tasty test trees.
ParamTree
ParamTree library for generating labelled test/benchmark trees from sets of parameters. Example usecases include criterion benchmark trees or tasty test trees.
Example
import Test.Tasty
import Test.Tasty.HUnit
genTestCase :: Int -> Bool -> Char -> String -> TestTree
genTestCase i b c name = testCase name $ {- your code here -}
params = simpleParam "Int" [1,2]
. simpleParam "Bool" [True]
. simpleParam "Char" "xyz"
main :: IO ()
main = defaultMain $ testTree genTestCase params
where
testTree = growTree (Just "/") testGroup "my tests"
This generates a tasty TestTree with all combinations of values passed to genTestCase
. If the Maybe String
argument is provided like in the above example, groups with a single entry, such as "Bool" get collapsed into their parent groups. So instead of a "1 Int" group containing a "True Bool" group they get collapsed into a single "1 Int/True Bool" group, where the "/" separator is the one specified by Just "/"
.