-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Run tests by filtering the test tree depending on the result of previous test
--   runs
--   
--   This ingredient adds the ability to run tests by first filtering the
--   test tree based on the result of a previous test run. For example, you
--   can use this to run only those tests that failed in the last run, or
--   to run only tests that have been added since tests were last ran.
--   
--   This ingredient is specifically an ingredient *transformer* - given a
--   list of <a>Tasty.Ingredient</a>s, <a>rerunningTests</a> adds the
--   ability for all of these ingredients to run against a filtered test
--   tree. This transformer can be applied as follows:
--   
--   <pre>
--   import Test.Tasty
--   import Test.Tasty.Runners
--   
--   main :: IO ()
--   main =
--     defaultMainWithIngredients
--       [ rerunningTests [ listingTests, consoleTestReporter ] ]
--       tests
--   
--   tests :: TestTree
--   tests = undefined
--   </pre>
--   
--   This ingredient adds three command line parameters:
--   
--   <ul>
--   <li><i><tt>--rerun-update</tt></i> If specified the results of this
--   test run will be saved to the log file at <tt>--rerun-log-file</tt>.
--   If the ingredient does not execute tests (for example,
--   <tt>--list-tests</tt> is used) then the log file will not be updated.
--   This option is not enabled by default. This option does not require a
--   value.</li>
--   <li><i><tt>--rerun-log-file</tt></i> The path to the log file to read
--   previous test information from, and where to write new information to
--   (if <tt>--rerun-update</tt> is specified). This option defaults to
--   <tt>.tasty-rerun-log</tt>.</li>
--   <li><i><tt>--rerun-filter</tt></i> Which filters to apply to the
--   <a>Tasty.TestTree</a> based on previous test runs. The value of this
--   option is a comma separated list of the following options:</li>
--   </ul>
--   
--   <ul>
--   <li><tt>failures</tt>: Only run tests that failed on the previous
--   run.</li>
--   <li><tt>exceptions</tt>: Only run tests that threw an exception on the
--   previous run.</li>
--   <li><tt>new</tt>: Only run tests that are new since the previous test
--   run.</li>
--   <li><tt>successful</tt>: Only run tests that were successful in the
--   previous run.</li>
--   </ul>
--   
--   Multiple options can be combined and will be taken under disjunction -
--   so <tt>--rerun-filter=failures,exceptions</tt> will run only tests
--   that failed *or* threw an exception on the last run.
--   
--   Defaults to all filters, which means all tests will be ran.
@package tasty-rerun
@version 1.1.5

module Test.Tasty.Ingredients.Rerun

-- | This <a>Ingredient</a> transformer adds various <tt>--rerun</tt>
--   options to your test program. These flags add stateful execution of
--   your test suite, allowing you to rerun only tests that are failing
--   from the previous run, or tests that that have been added since the
--   last test ran, once the <a>TestTree</a> has been filtered.
--   
--   The input list of <a>Ingredient</a>s specifies the <a>Ingredients</a>s
--   that will actually work with the filtered <a>TestTree</a>. Normally,
--   you'll want at least <a>consoleTestReporter</a>.
rerunningTests :: [Ingredient] -> Ingredient
instance GHC.Show.Show Test.Tasty.Ingredients.Rerun.TestResult
instance GHC.Read.Read Test.Tasty.Ingredients.Rerun.TestResult
instance GHC.Classes.Ord Test.Tasty.Ingredients.Rerun.Filter
instance GHC.Classes.Eq Test.Tasty.Ingredients.Rerun.Filter
instance Test.Tasty.Options.IsOption Test.Tasty.Ingredients.Rerun.RerunLogFile
instance Test.Tasty.Options.IsOption Test.Tasty.Ingredients.Rerun.UpdateLog
instance Test.Tasty.Options.IsOption Test.Tasty.Ingredients.Rerun.FilterOption
