Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
API for test providers
Synopsis
- class Typeable t => IsTest t where
- run :: OptionSet -> t -> (Progress -> IO ()) -> IO Result
- testOptions :: Tagged t [OptionDescription]
- testPassed :: String -> Result
- testFailed :: String -> Result
- testFailedDetails :: String -> ResultDetailsPrinter -> Result
- data Result
- data Progress = Progress {}
- type TestName = String
- data TestTree
- singleTest :: IsTest t => TestName -> t -> TestTree
Documentation
class Typeable t => IsTest t where Source #
The interface to be implemented by a test provider.
The type t
is the concrete representation of the test which is used by
the provider.
:: OptionSet | options |
-> t | the test to run |
-> (Progress -> IO ()) | a callback to report progress. Note: the callback is a no-op at the moment and there are no plans to use it; feel free to ignore this argument for now. |
-> IO Result |
Run the test
This method should cleanly catch any exceptions in the code to test, and
return them as part of the Result
, see FailureReason
for an
explanation. It is ok for run
to raise an exception if there is a
problem with the test suite code itself (for example, if a file that
should contain example data or expected output is not found).
testOptions :: Tagged t [OptionDescription] Source #
The list of options that affect execution of tests of this type
:: String | description |
-> ResultDetailsPrinter | details printer |
-> Result |
Result
of a failed test with custom details printer
Since: 1.3.1
A test result
Test progress information.
This may be used by a runner to provide some feedback to the user while a long-running test is executing.
Progress | |
|
The main data structure defining a test suite.
It consists of individual test cases and properties, organized in named groups which form a tree-like hierarchy.
There is no generic way to create a test case. Instead, every test
provider (tasty-hunit, tasty-smallcheck etc.) provides a function to
turn a test case into a TestTree
.
Groups can be created using testGroup
.