hspec-core-2.10.9: A Testing Framework for Haskell
Stability experimental
Safe Haskell None
Language Haskell2010

Test.Hspec.Core.Formatters.V2

Description

This module contains formatters that can be used with hspecWith .

Synopsis

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 Source #

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

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).

getFailMessages :: FormatM [ FailureRecord ] Source #

Get the list of accumulated failure messages.

usedSeed :: FormatM Integer Source #

The random seed that is used for QuickCheck.

printTimes :: FormatM Bool Source #

Return True if the user requested time reporting for individual spec items, False otherwise.

newtype Seconds Source #

Constructors

Seconds Double

Instances

Instances details
Eq Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

Fractional Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

Num Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

Ord Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

Show Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

PrintfArg Seconds Source #
Instance details

Defined in Test.Hspec.Core.Clock

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

write :: String -> FormatM () Source #

Append some output to the report.

writeLine :: String -> FormatM () Source #

The same as write , but adds a newline character.

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.

useDiff :: FormatM Bool Source #

Return True if the user requested colorized diffs, False otherwise.

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.

Helpers

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