Copyright | Oliver Charles (c) 2014 Andrew Lelechenko (c) 2019 |
---|---|
License | BSD3 |
Safe Haskell | None |
Language | Haskell2010 |
This ingredient for tasty testing framework allows to filter a test tree depending on an outcome of the previous run. This may be useful in many scenarios, especially when a test suite grows large.
The behaviour is controlled by command-line options:
--rerun
Rerun only tests, which failed during the last run. If the last run was successful, execute a full test suite afresh. A shortcut for
--rerun-update
--rerun-filter failures,exceptions
--rerun-all-on-success
.--rerun-update
Update the log file to reflect latest test outcomes.
--rerun-filter
CATEGORIES
Read the log file and rerun only tests from a given comma-separated list of categories:
failures
,exceptions
,new
,successful
. If this option is omitted or the log file is missing, rerun everything.--rerun-all-on-success
If according to the log file and
--rerun-filter
there is nothing left to rerun, run all tests. This comes especially handy instack test --file-watch
orghcid
scenarios.--rerun-log-file
FILE
Location of the log file (default:
.tasty-rerun-log
).
To add it to your test suite just replace
defaultMain
with
defaultMainWithRerun
or wrap arguments
of defaultMainWithIngredients
into rerunningTests
.
Synopsis
- defaultMainWithRerun :: TestTree -> IO ()
- rerunningTests :: [Ingredient] -> Ingredient
Documentation
defaultMainWithRerun :: TestTree -> IO () Source #
Drop-in replacement for defaultMain
.
import Test.Tasty import Test.Tasty.Ingredients.Rerun main :: IO () main = defaultMainWithRerun tests tests :: TestTree tests = undefined
rerunningTests :: [Ingredient] -> Ingredient Source #
Ingredient transformer, to use with
defaultMainWithIngredients
.
import Test.Tasty import Test.Tasty.Runners import Test.Tasty.Ingredients.Rerun main :: IO () main = defaultMainWithIngredients [ rerunningTests [ listingTests, consoleTestReporter ] ] tests tests :: TestTree tests = undefined