Safe Haskell | None |
---|---|
Language | Haskell98 |
A generic test framework for all types of Haskell test.
For an example of how to use test-framework, please see http://github.com/batterseapower/test-framework/raw/master/example/Test/Framework/Example.lhs
- class (Show i, Show r) => TestResultlike i r | r -> i where
- testSucceeded :: r -> Bool
- class TestResultlike i r => Testlike i r t | t -> i r, r -> i where
- runTest :: CompleteTestOptions -> t -> IO (i :~> r, IO ())
- testTypeName :: t -> TestTypeName
- type TestName = String
- type TestTypeName = String
- data Test
- = forall i r t . (Testlike i r t, Typeable t) => Test TestName t
- | TestGroup TestName [Test]
- | PlusTestOptions TestOptions Test
- | BuildTestBracketed (IO (Test, IO ()))
- testGroup :: TestName -> [Test] -> Test
- plusTestOptions :: TestOptions -> Test -> Test
- buildTest :: IO Test -> Test
- buildTestBracketed :: IO (Test, IO ()) -> Test
- data MutuallyExcluded t = ME (MVar ()) t
- mutuallyExclusive :: Test -> Test
- module Test.Framework.Options
- module Test.Framework.Runners.Console
- module Test.Framework.Runners.Options
- module Test.Framework.Seed
Documentation
class (Show i, Show r) => TestResultlike i r | r -> i where Source
Something like the result of a test: works in concert with Testlike
.
The type parameters are the type that is used for progress reports and the
type of the final output of the test respectively.
testSucceeded :: r -> Bool Source
class TestResultlike i r => Testlike i r t | t -> i r, r -> i where Source
Something test-like in its behaviour. The type parameters are the type that is used for progress reports, the type of the final output of the test and the data type encapsulating the whole potential to do a test respectively.
runTest :: CompleteTestOptions -> t -> IO (i :~> r, IO ()) Source
testTypeName :: t -> TestTypeName Source
Testlike i r t => Testlike i r (MutuallyExcluded t) |
type TestTypeName = String Source
The name of a type of test, such as Properties or "Test Cases". Tests of types of the same names will be grouped together in the test run summary.
Main test data type: builds up a list of tests to be run. Users should use the
utility functions in e.g. the test-framework-hunit and test-framework-quickcheck
packages to create instances of Test
, and then build them up into testsuites
by using testGroup
and lists.
For an example of how to use test-framework, please see http://github.com/batterseapower/test-framework/raw/master/example/Test/Framework/Example.lhs
forall i r t . (Testlike i r t, Typeable t) => Test TestName t | A single test of some particular type |
TestGroup TestName [Test] | Assemble a number of tests into a cohesive group |
PlusTestOptions TestOptions Test | Add some options to child tests |
BuildTestBracketed (IO (Test, IO ())) | Convenience for creating tests from an |
plusTestOptions :: TestOptions -> Test -> Test Source
Add some options to child tests
buildTestBracketed :: IO (Test, IO ()) -> Test Source
Convenience for creating tests from an IO
action, with a cleanup handler for when tests are finished
data MutuallyExcluded t Source
Testlike i r t => Testlike i r (MutuallyExcluded t) | |
Typeable (* -> *) MutuallyExcluded |
mutuallyExclusive :: Test -> Test Source
Mark all tests in this portion of the tree as mutually exclusive, so only one runs at a time
module Test.Framework.Options
module Test.Framework.Seed