Safe Haskell | None |
---|---|
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
.