| Stability | stable |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
Test.Hspec.Api.Formatters.V3
Description
This module contains formatters that can be used with hspecWith:
import Test.Hspec
import Test.Hspec.Api.Formatters.V1
main :: IO ()
main = hspecWith (useFormatter ("my-formatter", formatter) defaultConfig) spec
formatter :: Formatter
formatter = ...
spec :: Spec
spec = ...
Synopsis
- registerFormatter :: (String, Formatter) -> Config -> Config
- useFormatter :: (String, Formatter) -> Config -> Config
- formatterToFormat :: Formatter -> FormatConfig -> IO Format
- 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
- 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 ())
- formatConfigPrettyPrintFunction :: Maybe (String -> String -> (String, String))
- formatConfigFormatException :: SomeException -> String
- formatConfigPrintTimes :: Bool
- formatConfigHtmlOutput :: Bool
- formatConfigPrintCpuTime :: Bool
- formatConfigUsedSeed :: Integer
- formatConfigExpectedTotalCount :: Int
- defaultFormatConfig :: FormatConfig
- 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
- type SpecWith a = SpecM a ()
- data Config
- modifyConfig :: (Config -> Config) -> SpecWith a
Register a formatter
registerFormatter :: (String, Formatter) -> Config -> Config Source #
Make a formatter available for use with --format.
useFormatter :: (String, Formatter) -> Config -> Config Source #
Make a formatter available for use with --format and use it by default.
formatterToFormat :: Formatter -> FormatConfig -> IO Format Source #
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: hspec-core-2.0.0
Location is used to represent source locations.
Constructors
| Location | |
Fields
| |
Instances
| Read Location | |
Defined in Test.Hspec.Core.Example.Location | |
| Show Location | |
| Eq Location | |
Constructors
| Item | |
Fields
| |
data FailureReason Source #
Constructors
| NoReason | |
| Reason String | |
| ColorizedReason String | |
| ExpectedButGot (Maybe String) String String | |
| Error (Maybe String) SomeException |
Instances
| NFData FailureReason | |
Defined in Test.Hspec.Core.Example Methods rnf :: FailureReason -> () | |
| Show FailureReason | |
Defined in Test.Hspec.Core.Example Methods showsPrec :: Int -> FailureReason -> ShowS show :: FailureReason -> String showList :: [FailureReason] -> ShowS | |
Instances
| MonadIO FormatM | |
Defined in Test.Hspec.Core.Formatters.Internal | |
| Applicative FormatM | |
| Functor FormatM | |
| Monad FormatM | |
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: hspec-core-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 |
Instances
| PrintfArg Seconds | |
Defined in Test.Hspec.Core.Clock | |
| Num Seconds | |
| Fractional Seconds | |
Defined in Test.Hspec.Core.Clock | |
| Show Seconds | |
| Eq Seconds | |
| Ord Seconds | |
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: hspec-core-2.9.0
diffContext :: FormatM (Maybe Int) Source #
Return the value of configDiffContext.
Since: hspec-core-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: hspec-core-2.10.6
prettyPrint :: FormatM Bool Source #
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: hspec-core-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: hspec-core-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 IOExceptions the IOErrorType is included, as well.
Since: hspec-core-2.0.0
Re-exports
type SpecWith a = SpecM a () Source #
A represents a test or group of tests that require an SpecWith aa
value to run.
In the common case, a Spec is a which requires SpecWith ()() and
can thus be executed with hspec.
To supply an argument to SpecWith tests to turn them into Spec, use
functions from Test.Hspec.Core.Hooks such as
around, before,
mapSubject and similar.
Values of this type are created by it,
describe and similar.