Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Console reporter ingredient
Synopsis
- consoleTestReporter :: Ingredient
- consoleTestReporterWithHook :: ([TestName] -> Result -> IO Result) -> Ingredient
- newtype Quiet = Quiet Bool
- newtype HideSuccesses = HideSuccesses Bool
- newtype AnsiTricks = AnsiTricks {}
- data UseColor
- useColor :: UseColor -> Bool -> Bool
- data Statistics = Statistics {
- statTotal :: !Int
- statFailures :: !Int
- computeStatistics :: StatusMap -> IO Statistics
- printStatistics :: (?colors :: Bool) => Statistics -> Time -> IO ()
- printStatisticsNoTime :: (?colors :: Bool) => Statistics -> IO ()
- data TestOutput
- = PrintTest String (IO ()) (Result -> IO ())
- | PrintHeading String (IO ()) TestOutput
- | Skip
- | Seq TestOutput TestOutput
- buildTestOutput :: (?colors :: Bool) => OptionSet -> TestTree -> TestOutput
- foldTestOutput :: Monoid b => (String -> IO () -> IO Result -> (Result -> IO ()) -> b) -> (String -> IO () -> b -> b) -> TestOutput -> StatusMap -> b
- withConsoleFormat :: (?colors :: Bool) => ConsoleFormatPrinter
Documentation
consoleTestReporter :: Ingredient Source #
A simple console UI
consoleTestReporterWithHook :: ([TestName] -> Result -> IO Result) -> Ingredient Source #
A simple console UI with a hook to postprocess results, depending on their names and external conditions (e. g., its previous outcome, stored in a file). Names are listed in reverse order: from test's own name to a name of the outermost test group.
Since: 1.4.2
Do not print test results (see README for details)
Instances
Eq Quiet Source # | |
Ord Quiet Source # | |
IsOption Quiet Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter defaultValue :: Quiet Source # parseValue :: String -> Maybe Quiet Source # optionName :: Tagged Quiet String Source # optionHelp :: Tagged Quiet String Source # showDefaultValue :: Quiet -> Maybe String Source # optionCLParser :: Parser Quiet Source # |
newtype HideSuccesses Source #
Report only failed tests.
At the moment, this option only works globally. As an argument to localOption
, it does nothing.
Instances
Eq HideSuccesses Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter (==) :: HideSuccesses -> HideSuccesses -> Bool # (/=) :: HideSuccesses -> HideSuccesses -> Bool # | |
Ord HideSuccesses Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter compare :: HideSuccesses -> HideSuccesses -> Ordering # (<) :: HideSuccesses -> HideSuccesses -> Bool # (<=) :: HideSuccesses -> HideSuccesses -> Bool # (>) :: HideSuccesses -> HideSuccesses -> Bool # (>=) :: HideSuccesses -> HideSuccesses -> Bool # max :: HideSuccesses -> HideSuccesses -> HideSuccesses # min :: HideSuccesses -> HideSuccesses -> HideSuccesses # | |
IsOption HideSuccesses Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter defaultValue :: HideSuccesses Source # parseValue :: String -> Maybe HideSuccesses Source # optionName :: Tagged HideSuccesses String Source # optionHelp :: Tagged HideSuccesses String Source # showDefaultValue :: HideSuccesses -> Maybe String Source # optionCLParser :: Parser HideSuccesses Source # |
newtype AnsiTricks Source #
By default, when the option --hide-successes
is given and the output
goes to an ANSI-capable terminal, we employ some ANSI terminal tricks to
display the name of the currently running test and then erase it if it
succeeds.
These tricks sometimes fail, however—in particular, when the test names happen to be longer than the width of the terminal window. See
- https://github.com/UnkindPartition/tasty/issues/152
- https://github.com/UnkindPartition/tasty/issues/250
When that happens, this option can be used to disable the tricks. In that case, the test name will be printed only once the test fails.
Instances
IsOption AnsiTricks Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter defaultValue :: AnsiTricks Source # parseValue :: String -> Maybe AnsiTricks Source # optionName :: Tagged AnsiTricks String Source # optionHelp :: Tagged AnsiTricks String Source # showDefaultValue :: AnsiTricks -> Maybe String Source # optionCLParser :: Parser AnsiTricks Source # |
Internals
The following functions and datatypes are internals that are exposed to simplify the task of rolling your own custom console reporter UI.
Output colouring
When to use color on the output
Since: 0.11.3
Instances
Eq UseColor Source # | |
Ord UseColor Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter | |
IsOption UseColor Source # | Control color output |
Defined in Test.Tasty.Ingredients.ConsoleReporter defaultValue :: UseColor Source # parseValue :: String -> Maybe UseColor Source # optionName :: Tagged UseColor String Source # optionHelp :: Tagged UseColor String Source # showDefaultValue :: UseColor -> Maybe String Source # optionCLParser :: Parser UseColor Source # |
useColor :: UseColor -> Bool -> Bool Source #
useColor when isTerm
decides if colors should be used,
where isTerm
indicates whether stdout
is a terminal device.
Since: 0.11.3
Test failure statistics
data Statistics Source #
Track the number of tests that were run and failures of a TestTree
or
sub-tree.
Since: 0.11.3
Statistics | |
|
Instances
Monoid Statistics Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter mempty :: Statistics # mappend :: Statistics -> Statistics -> Statistics # mconcat :: [Statistics] -> Statistics # | |
Semigroup Statistics Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter (<>) :: Statistics -> Statistics -> Statistics # sconcat :: NonEmpty Statistics -> Statistics # stimes :: Integral b => b -> Statistics -> Statistics # |
computeStatistics :: StatusMap -> IO Statistics Source #
computeStatistics
computes a summary Statistics
for
a given state of the StatusMap
.
Useful in combination with printStatistics
printStatistics :: (?colors :: Bool) => Statistics -> Time -> IO () Source #
printStatistics
reports test success/failure statistics and time it took
to run. The Time
results is intended to be filled in by the TestReporter
callback. The colors
ImplicitParam controls whether coloured output is
used.
Since: 0.11.3
printStatisticsNoTime :: (?colors :: Bool) => Statistics -> IO () Source #
printStatisticsNoTime
reports test success/failure statistics
The colors
ImplicitParam controls whether coloured output is used.
Since: 0.12
Outputting results
data TestOutput Source #
TestOutput
is an intermediary between output formatting and output
printing. It lets us have several different printing modes (normal; print
failures only; quiet).
Since: 0.12
PrintTest String (IO ()) (Result -> IO ()) | Name of a test, an action that prints the test name, and an action that renders the result of the action. |
PrintHeading String (IO ()) TestOutput | Name of a test group, an action that prints the heading of a test
group and the |
Skip | Inactive test (e.g. not matching the current pattern) |
Seq TestOutput TestOutput | Two sets of |
Instances
Monoid TestOutput Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter mempty :: TestOutput # mappend :: TestOutput -> TestOutput -> TestOutput # mconcat :: [TestOutput] -> TestOutput # | |
Semigroup TestOutput Source # | |
Defined in Test.Tasty.Ingredients.ConsoleReporter (<>) :: TestOutput -> TestOutput -> TestOutput # sconcat :: NonEmpty TestOutput -> TestOutput # stimes :: Integral b => b -> TestOutput -> TestOutput # |
buildTestOutput :: (?colors :: Bool) => OptionSet -> TestTree -> TestOutput Source #
Build the TestOutput
for a TestTree
and OptionSet
. The colors
ImplicitParam controls whether the output is colored.
Since: 0.11.3
:: Monoid b | |
=> (String -> IO () -> IO Result -> (Result -> IO ()) -> b) | Eliminator for test cases. The |
-> (String -> IO () -> b -> b) | Eliminator for test groups. The |
-> TestOutput | The |
-> StatusMap | The |
-> b |
Fold function for the TestOutput
tree into a Monoid
.
Since: 0.12
withConsoleFormat :: (?colors :: Bool) => ConsoleFormatPrinter Source #
Run action with console configured for a specific output format
This function does not apply any output formats if colors are disabled at command line or console detection.
Can be used by providers that wish to provider specific result details printing, while re-using the tasty formats and coloring logic.
Since: 1.3.1