Stability | experimental |
---|---|
Safe Haskell | None |
Test.Hspec.Formatters
Contents
Description
This module contains formatters that can be used with
hspecWith
.
- silent :: Formatter
- specdoc :: Formatter
- progress :: Formatter
- failed_examples :: Formatter
- data Formatter = Formatter {
- headerFormatter :: FormatM ()
- exampleGroupStarted :: Int -> [String] -> String -> FormatM ()
- exampleGroupDone :: FormatM ()
- exampleProgress :: Handle -> Path -> Progress -> IO ()
- exampleSucceeded :: Path -> FormatM ()
- exampleFailed :: Path -> Either SomeException String -> FormatM ()
- examplePending :: Path -> Maybe String -> FormatM ()
- failedFormatter :: FormatM ()
- footerFormatter :: FormatM ()
- data FormatM a
- getSuccessCount :: FormatM Int
- getPendingCount :: FormatM Int
- getFailCount :: FormatM Int
- getTotalCount :: FormatM Int
- data FailureRecord = FailureRecord {}
- getFailMessages :: FormatM [FailureRecord]
- usedSeed :: FormatM Integer
- getCPUTime :: FormatM (Maybe Double)
- getRealTime :: FormatM Double
- write :: String -> FormatM ()
- writeLine :: String -> FormatM ()
- newParagraph :: FormatM ()
- withSuccessColor :: FormatM a -> FormatM a
- withPendingColor :: FormatM a -> FormatM a
- withFailColor :: FormatM a -> FormatM a
- formatException :: SomeException -> String
Formatters
Implementing a custom Formatter
A formatter is a set of actions. Each action is evaluated when a certain situation is encountered during a test run.
Actions live in the FormatM
monad. It provides access to the runner state
and primitives for appending to the generated report.
data Formatter
Constructors
Formatter | |
Fields
|
Accessing the runner state
getSuccessCount :: FormatM Int
Get the number of successful examples encountered so far.
getPendingCount :: FormatM Int
Get the number of pending examples encountered so far.
Get the number of failed examples encountered so far.
Get the total number of examples encountered so far.
data FailureRecord
Constructors
FailureRecord | |
Fields |
getFailMessages :: FormatM [FailureRecord]
Get the list of accumulated failure messages.
getCPUTime :: FormatM (Maybe Double)
Get the used CPU time since the test run has been started.
Get the passed real time since the test run has been started.
Appending to the gerenated report
newParagraph :: FormatM ()
Append an empty line to the report.
Calling this multiple times has the same effect as calling it once.
Dealing with colors
withSuccessColor :: FormatM a -> FormatM a
Set output to color green, run given action, and finally restore the default color.
withPendingColor :: FormatM a -> FormatM a
Set output color to yellow, run given action, and finally restore the default color.
withFailColor :: FormatM a -> FormatM a
Set output color to red, run given action, and finally restore the default color.
Helpers
formatException :: SomeException -> String
Convert an exception to a string.
The type of the exception is included. Here is an example:
>>>
import Control.Applicative
>>>
import Control.Exception
>>>
either formatException show <$> (try . evaluate) (1 `div` 0)
"ArithException (divide by zero)"