test-framework-0.8.2.0: Framework for running and organising tests, with HUnit and QuickCheck support

Test.Framework

Description

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

Synopsis

# 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.

Minimal complete definition

testSucceeded

Methods

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.

Minimal complete definition

Methods

runTest :: CompleteTestOptions -> t -> IO (i :~> r, IO ()) Source #

Instances

 Testlike i r t => Testlike i r (MutuallyExcluded t) Source # MethodsrunTest :: CompleteTestOptions -> MutuallyExcluded t -> IO (i :~> r, IO ()) Source #

Test names or descriptions. These are shown to the user

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.

data Test Source #

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-quickcheck2 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

Constructors

 (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 IO action, with cleanup

testGroup :: TestName -> [Test] -> Test Source #

Assemble a number of tests into a cohesive group

Add some options to child tests

Convenience for creating tests from an IO action

buildTestBracketed :: IO (Test, IO ()) -> Test Source #

Convenience for creating tests from an IO action, with a cleanup handler for when tests are finished

Constructors

 ME (MVar ()) t

Instances

 Testlike i r t => Testlike i r (MutuallyExcluded t) Source # MethodsrunTest :: CompleteTestOptions -> MutuallyExcluded t -> IO (i :~> r, IO ()) Source #

Mark all tests in this portion of the tree as mutually exclusive, so only one runs at a time