Stability | unstable |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Test.Hspec.Core.Formatters.V2
Description
This is an unstable API. Use Test.Hspec.Api.Formatters.V3 instead.
Synopsis
- silent :: Formatter
- checks :: Formatter
- specdoc :: Formatter
- progress :: Formatter
- failed_examples :: Formatter
- data Formatter = Formatter {
- formatterStarted :: FormatM ()
- formatterGroupStarted :: Path -> FormatM ()
- formatterGroupDone :: Path -> FormatM ()
- formatterProgress :: Path -> Progress -> FormatM ()
- formatterItemStarted :: Path -> FormatM ()
- formatterItemDone :: Path -> Item -> FormatM ()
- formatterDone :: FormatM ()
- type Path = ([String], String)
- type Progress = (Int, Int)
- data Location = Location {
- locationFile :: FilePath
- locationLine :: Int
- locationColumn :: Int
- data Item = Item {
- itemLocation :: Maybe Location
- itemDuration :: Seconds
- itemInfo :: String
- itemResult :: Result
- data Result
- data FailureReason
- = NoReason
- | Reason String
- | ColorizedReason String
- | ExpectedButGot (Maybe String) String String
- | Error (Maybe String) SomeException
- data FormatM a
- formatterToFormat :: Formatter -> FormatConfig -> IO Format
- getConfig :: FormatM FormatConfig
- getConfigValue :: (FormatConfig -> a) -> FormatM a
- data FormatConfig = FormatConfig {
- formatConfigUseColor :: Bool
- formatConfigReportProgress :: Bool
- formatConfigOutputUnicode :: Bool
- formatConfigUseDiff :: Bool
- formatConfigDiffContext :: Maybe Int
- formatConfigExternalDiff :: Maybe (String -> String -> IO ())
- formatConfigPrettyPrint :: Bool
- formatConfigPrettyPrintFunction :: Maybe (String -> String -> (String, String))
- formatConfigFormatException :: SomeException -> String
- formatConfigPrintTimes :: Bool
- formatConfigHtmlOutput :: Bool
- formatConfigPrintCpuTime :: Bool
- formatConfigUsedSeed :: Integer
- formatConfigExpectedTotalCount :: Int
- formatConfigExpertMode :: Bool
- getSuccessCount :: FormatM Int
- getPendingCount :: FormatM Int
- getFailCount :: FormatM Int
- getTotalCount :: FormatM Int
- getExpectedTotalCount :: FormatM Int
- data FailureRecord = FailureRecord {}
- getFailMessages :: FormatM [FailureRecord]
- usedSeed :: FormatM Integer
- printTimes :: FormatM Bool
- newtype Seconds = Seconds Double
- getCPUTime :: FormatM (Maybe Seconds)
- getRealTime :: FormatM Seconds
- write :: String -> FormatM ()
- writeLine :: String -> FormatM ()
- writeTransient :: String -> FormatM ()
- withInfoColor :: FormatM a -> FormatM a
- withSuccessColor :: FormatM a -> FormatM a
- withPendingColor :: FormatM a -> FormatM a
- withFailColor :: FormatM a -> FormatM a
- outputUnicode :: FormatM Bool
- useDiff :: FormatM Bool
- diffContext :: FormatM (Maybe Int)
- externalDiffAction :: FormatM (Maybe (String -> String -> IO ()))
- prettyPrint :: FormatM Bool
- prettyPrintFunction :: FormatM (Maybe (String -> String -> (String, String)))
- extraChunk :: String -> FormatM ()
- missingChunk :: String -> FormatM ()
- unlessExpert :: FormatM () -> FormatM ()
- formatLocation :: Location -> String
- 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.
Constructors
Formatter | |
Fields
|
type Path = ([String], String) Source #
A Path
describes the location of a spec item within a spec tree.
It consists of a list of group descriptions and a requirement description.
Since: 2.0.0
Location
is used to represent source locations.
Constructors
Location | |
Fields
|
Constructors
Item | |
Fields
|
data FailureReason Source #
Constructors
NoReason | |
Reason String | |
ColorizedReason String | |
ExpectedButGot (Maybe String) String String | |
Error (Maybe String) SomeException |
Instances
Show FailureReason Source # | |
Defined in Test.Hspec.Core.Example Methods showsPrec :: Int -> FailureReason -> ShowS show :: FailureReason -> String showList :: [FailureReason] -> ShowS | |
NFData FailureReason Source # | |
Defined in Test.Hspec.Core.Example Methods rnf :: FailureReason -> () |
formatterToFormat :: Formatter -> FormatConfig -> IO Format Source #
Accessing config values
getConfig :: FormatM FormatConfig Source #
Since: 2.11.5
getConfigValue :: (FormatConfig -> a) -> FormatM a Source #
Since: 2.11.5
data FormatConfig Source #
Since: 2.11.5
Constructors
FormatConfig | |
Fields
|
Accessing the runner state
getSuccessCount :: FormatM Int Source #
Get the number of successful examples encountered so far.
getPendingCount :: FormatM Int Source #
Get the number of pending examples encountered so far.
getFailCount :: FormatM Int Source #
Get the number of failed examples encountered so far.
getTotalCount :: FormatM Int Source #
Get the total number of examples encountered so far.
getExpectedTotalCount :: FormatM Int Source #
Get the number of spec items that will have been encountered when this run completes (if it is not terminated early).
Since: 2.9.0
data FailureRecord Source #
Constructors
FailureRecord | |
Fields |
getFailMessages :: FormatM [FailureRecord] Source #
Get the list of accumulated failure messages.
printTimes :: FormatM Bool Source #
Return True
if the user requested time reporting for individual spec
items, False
otherwise.
Constructors
Seconds Double |
getCPUTime :: FormatM (Maybe Seconds) Source #
Get the used CPU time since the test run has been started.
getRealTime :: FormatM Seconds Source #
Get the passed real time since the test run has been started.
Appending to the generated report
writeTransient :: String -> FormatM () Source #
Dealing with colors
withInfoColor :: FormatM a -> FormatM a Source #
Set output color to cyan, run given action, and finally restore the default color.
withSuccessColor :: FormatM a -> FormatM a Source #
Set output color to green, run given action, and finally restore the default color.
withPendingColor :: FormatM a -> FormatM a Source #
Set output color to yellow, run given action, and finally restore the default color.
withFailColor :: FormatM a -> FormatM a Source #
Set output color to red, run given action, and finally restore the default color.
outputUnicode :: FormatM Bool Source #
Return True
if the user requested unicode output, False
otherwise.
Since: 2.9.0
diffContext :: FormatM (Maybe Int) Source #
Return the value of configDiffContext
.
Since: 2.10.6
externalDiffAction :: FormatM (Maybe (String -> String -> IO ())) Source #
An action for printing diffs.
The action takes expected
and actual
as arguments.
When this is a Just
-value then it should be used instead of any built-in
diff implementation. A Just
-value also implies that useDiff
returns
True
.
Since: 2.10.6
prettyPrint :: FormatM Bool Source #
Deprecated: use prettyPrintFunction
instead
Return True
if the user requested pretty diffs, False
otherwise.
prettyPrintFunction :: FormatM (Maybe (String -> String -> (String, String))) Source #
Return a function for pretty-printing if the user requested pretty diffs,
Nothing
otherwise.
Since: 2.10.0
extraChunk :: String -> FormatM () Source #
Output given chunk in red.
missingChunk :: String -> FormatM () Source #
Output given chunk in green.
expert mode
unlessExpert :: FormatM () -> FormatM () Source #
Do nothing on `--expert`, otherwise run the given action.
Since: 2.11.2
Helpers
formatLocation :: Location -> String Source #
formatException :: SomeException -> String Source #
The function formatException
converts an exception to a string.
This is different from show
. The type of the exception is included, e.g.:
>>>
formatException (toException DivideByZero)
"ArithException\ndivide by zero"
For IOException
s the IOErrorType
is included, as well.
Since: 2.0.0